循环结构之while循环:我们将这种反复不停的执行某个动作称之谓循环。
C语言while循环的结构:
其中表达式表示循环条件,执行代码块为循环体。while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体代码块。
其执行过程可用下图表示:
使用while语句应注意以下几点:
1、while语句中的表达式一般是关系表达或逻辑表达式,当表达式的值为假时不执行循环体,反之则循环体一直执行。
2、一定要记着在循环体中改变循环变量的值,否则会出现死循环(无休止的执行)。
3、循环体如果包括有一个以上的语句,则必须用{}括起来,组成复合语句。
循环结构之do-while循环:
C语言中的do-while循环一般形式如下:
do-while循环语句的语义是:它先执行循环中的执行代码块,然后再判断while中表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。
其执行过程可用下图表示:
注意:使用do-while结构语句时,while括号后必须有分号。
while
和 do...while
循环的比较:
while
循环体是先判断再循环,而 do...while
语句是先循环后判断。
注意:和 while
语句不同, do...while
语句中的 while
();后面是有“;”的。
如果 while
后面的表达式一开始为假的时候,两者循环结构是不同的。
当 while
后面的表达式的第一次值为“真”时,两种循环得到的结果是相同的;否则,二者结果不相同。
循环结构之for循环:
它的一般形式为:
这三部分之间用分号(;)分开。
3个表达式的作用如下:
表达式 1:设置初始条件,只执行一次。可以为零个、一个或者多个表达式赋初值。
表达式 2:是循环条件表达式,用来判定是否继续循环。在每次执行循环体前先执行此表达式,决定是否继续执行循环。
表达式 3:作为循环的调整,例如循环变量的增值,是在执行完循环体后才进行的。
它的执行过程如下:
第一步:执行表达式1,对循环变量做初始化;
第二步:判断表达式2,若其值为真(非0),则执行for循环体中执行代码块,然后向下执行;若其值为假(0),则结束循环;
第三步:执行表达式3;
第四步:执行for循环中执行代码块后执行第二步;
第五步:循环结束,程序继续向下执行。
其执行过程可用下图表示:
注意:for循环中的分号一定要写。
使用for语句应该注意:
1、for循环中的“表达式1、2、3”均可可以缺省,但分号(;)不能缺省。
2、省略“表达式1(循环变量赋初值)”,表示不对循环变量赋初始值。
3、省略“表达式2(循环条件)”,不做其它处理,循环一直执行(死循环)。
4、省略“表达式3(循环变量增量)”,不做其他处理,循环一直执行(死循环)。
5、表达式1可以是设置循环变量的初值的赋值表达式,也可以是其他表达式。
6、表达式1和表达式3可以是一个简单表达式也可以是多个表达式以逗号分割。
7、表达式2一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其值非零,就执行循环体。
8、各表达式中的变量一定要在for循环之前定义。
while、do-while和for三种循环在具体的使用场合上是有区别的,如下:
1、在知道循环次数的情况下更适合使用for循环;
2、在不知道循环次数的情况下适合使用while或者do-while循环,如果有可能一次都不循环应考虑使用while循环,如果至少循环一次应考虑使用do-while循环。
循环结构之多重循环:
多重循环就是在循环结构的循环体中又出现循环结构。
多重循环在执行的过程中,外层循环为父循环,内层循环为子循环,父循环一次,子循环需要全部执行完,直到跳出循环。父循环再进入下一次,子循环继续执行...
注:一个父循环可以有多个子循环。
结束语句之break语句:
break语句的作用是终止并跳出循环。
使用break语句时注意以下几点:
1、在没有循环结构的情况下,break不能用在单独的if-else语句中。
2、在多层循环中,一个break语句只跳出当前循环。
结束语句之continue语句:
在某些情况下,程序需要返回到循环头部继续执行,而不是跳出循环,此时可以使用continue语句。
continue语句的作用是结束本次循环开始执行下一次循环。
break语句与continue语句的区别是:
break是跳出当前整个循环,continue结束本次循环开始下一次循环。
continue
的作用为结束本次循环,就是跳过循环体中下面尚未执行的语句,然后接着下一次的循环操作。 continue
语句是结束本次循环,而不是终止整个循环的执行。而 break
语句则是结束整个循环过程,不在判断执行循环的条件是否成立。
分支结构之switch语句:是多分支选择语句。
其执行顺序如下图:
在使用switch语句时还应注意以下几点:
1、在case后的各常量表达式的值不能相同,否则会出现错误。
2、在case子句后如果没有break;会一直往后执行一直到遇到break;才会跳出switch语句。
3、switch后面的表达式语句只能是整型或者字符类型。
4、在case后,允许有多个语句,可以不用{}括起来。
5、各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
6、default子句可以省略不用。
说明:
switch
括号内的“表达式”,其值的类型应为整数类型或者字符类型,不可以是其他数据类型。
default
语句为选择项,可有可无。另外,default
后面可以不加 break
语句。