一. for循环。
它的执行过程如下:
第一步:执行表达式1,对循环变量做初始化;
第二步:判断表达式2,若其值为真(非0),则执行for循环体中执行代码块,然后向下执行;若其值为假(0),则结束循环;
第三步:执行表达式3;
第四步:执行for循环中执行代码块后执行第二步;
第五步:循环结束,程序继续向下执行。
其执行过程可用下图表示:
例子1.
它的运行结果为:
注意:
1、for循环中的“表达式1、2、3”均可可以缺省,但分号(;)不能缺省。
2、省略“表达式1(循环变量赋初值)”,表示不对循环变量赋初始值。
3、省略“表达式2(循环条件)”,不做其它处理,循环一直执行(死循环)。
4、省略“表达式3(循环变量增量)”,不做其他处理,循环一直执行(死循环)。//死循环时可以用break解决。
5、表达式1可以是设置循环变量的初值的赋值表达式,也可以是其他表达式。
6、表达式1和表达式3可以是一个简单表达式也可以是多个表达式以逗号分割。
7、各表达式中的变量一定要在for循环之前定义。
二、if循环
if循环主要分为四种类型:
简单if语句、简单if-else语句、多重if-else语句、嵌套if-else语句
1.简单if语句
其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。 其过程可表示为下图:
看一个例子:
其运行结果为:
注意:if()后面没有分号,直接写{}
2、简单if-else语句
其语义是:如果表达式的值为真,则执行代码块1,否则执行代码块2。其执行过程可表示为下图:
看一个例子:
注意:同if()一样,else后面也没有;而是直接{}
3、多重if-else语句
简单if=else有两个代码执行块,二多重if-else语句有多个执行代码块,其它内容基本一样。
但注意一点,当某一条件为真的时候,则不会向下执行该分支结构的其他语句。
4、嵌套if-else语句
嵌套if-else语句的意思就是在if-else语句中再写if-else语句。
if语句的总体意思就是:现在有一个或多个选择摆在你面前,你的条件能满足什么选择你就得到什么结果。
三、while语句与do-while语句
while语句
do-while语句
注意:使用do-while结构语句时,while括号后必须有分号。
总的来说,while语句与do-while语句就像一对性格完全相反的双胞胎,while语句时先判断后执行,如果真则执行并循环直到判断为假并结束(有点像哥哥:理性),do-while语句时先执行后判断,如果真则执行并循环,直到判断为假并结束(像弟弟:感性)。
四、break语句与continue语句
使用break语句时注意以下几点:
1、在没有循环结构的情况下,break不能用在单独的if-else语句中。
2、在多层循环中,一个break语句只跳出当前循环。
与break语句相似的是continue语句。
continue语句的作用是结束本次循环开始执行下一次循环。
break语句与continue语句的区别是:break是跳出当前整个循环,continue结束本次循环开始下一次循环。
五、switch语句(有点类似语多重if-else-语句)
在使用switch语句时还应注意以下几点:
1、在case后的各常量表达式的值不能相同,否则会出现错误。
2、在case子句后如果没有break;会一直往后执行一直到遇到break;才会跳出switch语句。
3、switch后面的表达式语句只能是整型或者字符类型。
4、在case后,允许有多个语句,可以不用{}括起来。
5、各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
6、default子句可以省略不用。
六、goto语句(C中的传送门)
其中语句标号是一个标识符,该标识符一般用英文大写并遵守标识符命名规则,这个标识符加上一个“:”一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句。
goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在特定情况下,可以使用goto语句来提高程序的执行速度,所以还是少用为妙。其中语句标号是一个标识符,该标识符一般用英文大写并遵守标识符命名规则,这个标识符加上一个“:”一起出现在函数内某处,执行goto语句后,程序将跳转到该标号处并执行其后的语句。
goto语句通常不用,主要因为它将使程序层次不清,且不易读,但在特定情况下,可以使用goto语句来提高程序的执行速度,所以还是少用为妙。
结束语:作为c中几种常见的语句类型,学起来并不难,运用起来也相对简单,但学习中路漫漫无止境,一起努力吧!!
写于2017.8.26