C语言基础犄角旮旯的知识之分支与循环结构

简介: C语言基础犄角旮旯的知识之分支与循环结构

前言


我们都知道 程序 = 数据结构 + 算法,而学习数据结构前,一定要把数据类型啃透,负责就可能出现各种段错误或者溢出的错误。而对于初学者来说,学习数据类型的基本知识是容易的,但是有些底层知识与比较偏的知识,我认为也是需要掌握的。


目录


分支结构

switch语句

if语句

循环结构

goto语句

do while 与 while语句

for语句


正文


分支结构


switch语句


switch(a)        //a只能为整形:整数或字符。
{
    case 1:      //i只能为常量或确定的常量表达式,不能包括变量
    case 2:      //如果两个或多个case之间没有语句,就是多个case公用最后一个case的语句
    default :    //无论default的位置在哪,都是当所有case都为匹配上时,才执行。
                 //注意,如果default不在最后,而语句中也没有break;,那么也会接着执行下面的case                    
                 //语句
}


if语句


if(判断式)    

这个判断式里可以是任意合法的C语言表达式,当然,for语句,while语句中的判断式同理

总所周知,C语言里,用“非0”的值来表达“真”,用“0”来表达“假”。

那么问题来了,以下程序会输出什么呢

int a,b;    //为赋初值
if(a = b)   //注意这是赋值符号,不是等号
{
    printf("1");
}
else
{
    printf("2");
}


大家有答案了吗,答案是不确定,有可能是输出1,也有可能是输出2


那究竟是什么时候输出1,什么时候输出2呢


(a = b)我们判断输出什么,主要是这个判断式是值是为0,还是非0。b赋值给a,主要就是看b的值,如果b值为0,则判断式为假,输出2;如果b值为1,则判断式为真,输出1。而a,b未赋值,并不是没有值,系统会随机给a,b赋值,所以答案不确定。


循环结构


goto语句


goto语句:让CPU去指定的地方执行; 无条件跳转语句。

 

   语法:

       goto 行标识(语句标识)

       “行标识”: 用来标识一行的地址

       行标识一般写在一行的最前面,当然,行标识允许前面有空白符(eq:空白、tab..)

       行标识也属于标志符。


注意:乱用goto语句,会使程序的可读性变差。一般不建议使用goto 语句,为了使代码更加清晰,可读性强。


do while 与 while语句


当do while 与 while语句的判断条件相同时,do while 语句会比 while 多执行一次,相当于do while 语句是先执行后判断,而 while 语句是前判断后执行。


for语句


for(表达式1;表达式2;表达式3)
{
    ......
}


以上程序相当于以下程序


for(表达式1;表达式2;)
{
    ......
    表达式 3;
}

意思是,for循环语句,最后一句一定是表达式3,执行完这句后,才会进行表达式2的判断。表达式3的执行不受for循环里面的语句的影响,如以下程序


for(表达式1;表达式2;)
{
    ......
    continue;
    表达式 3;
}

即使中间有个continue语句,提前结束了本次循环,在本次循环最后也要执行表达式3,因此我们可以利用表达式3的这种特性,写出许多精简漂亮的程序代码。

相关文章
|
2月前
|
算法 C语言
C语言------循环结构II
这篇文章是C语言循环结构II的实训教程,通过多个实例程序,教授如何综合运用选择结构和循环语句解决问题,体会算法在程序设计中的作用,并复习程序调试功能和技巧。
C语言------循环结构II
|
4月前
|
C语言
【C语言基础篇】结构控制(中)循环结构
【C语言基础篇】结构控制(中)循环结构
|
4月前
|
C语言
【C语言基础】:分支与循环
【C语言基础】:分支与循环
|
24天前
|
C语言
C语言程序设计核心详解 第四章&&第五章 选择结构程序设计&&循环结构程序设计
本章节介绍了C语言中的选择结构,包括关系表达式、逻辑表达式及其运算符的优先级,并通过示例详细解释了 `if` 语句的不同形式和 `switch` 语句的使用方法。此外,还概述了循环结构,包括 `while`、`do-while` 和 `for` 循环,并解释了 `break` 和 `continue` 控制语句的功能。最后,提供了两道例题以加深理解。
|
2月前
|
C语言
【C语言篇】分支语句详解(超详细)
在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要顺序是满⾜实际需求的就可以。 不过我们通常是把 default ⼦句放在最后处理的。
|
2月前
|
算法 C语言
C语言------循环结构
这篇文章是C语言循环结构I的实训教程,介绍了while、do-while和for循环的使用方法,循环程序设计中的常用算法,无条件控制语句在循环中的控制作用,以及循环嵌套的理解和执行过程,并通过多个实例代码演示了这些概念的应用。
|
2月前
|
C语言
C语言分支语句
C语言分支语句
23 4
|
2月前
|
算法 编译器 C语言
六:《初学C语言》— 循环结构
【8月更文挑战第1天】本篇文章详细讲解了while循环;for循环;do...while循环,break、continue语句及goto语句,并在文章中附上多个教学示例代码及一个猜数字小游戏
25 0
六:《初学C语言》— 循环结构
|
4月前
|
C语言
C语言循环与分支
C语言循环与分支
39 5
|
4月前
|
C语言
C语言循环结构详解:for、while、do while、break与continue
C语言循环结构详解:for、while、do while、break与continue