接下来我将从多方面介绍c语言中的分支和循环,包括:
1for循环
2while循环
3do while循环
4continue语句
5break语句
6if语句
7contine语句和break语句在for,while,do while语句中应用的不同之处的多个例子
1for循环
for循环的基本结构是for( 1 ; 2 ; 3)
1为对条件的初始化
2判断循环的条件
3对条件的更新
值得一提的是,for循环在完成对条件的更新,后续语句执行完成之后,才会执行对条件的更新
2 while循环
while循环的基本结构是 while( 1){
}
1中为循环的条件
花括号内的语句在循环条件满足时才会执行
3do while语句
基本结构为 do{
}while();
值得一提的是:与while循环不同的是1while()后要有分号
2当do后花括号中的条件执行后才会判断while中的条件是否满足,也就是说当不满足while条件时,do–while语句会执行一次花括号里的内容,而while语句不会。
4continue语句
执行continue语句时当满足条件时,会跳过continue后的语句
5break语句
当break语句满足条件时,会直接结束本次循环。
6if语句
(1)单分支 if()
(2)多分支 if()else if()
7例子
(1)continue,break在for语句中的应用
#include<stdio.h> int main() { int a=0; for(a=1;a<10;a++) { if(a==5) contine; printf("%d ",a); } return 0; }
下面对本行代码打印的结果进行分析:
第一次进入a=1,打印1,
以此类推,打印1234
知道第五次 满足if中的条件,跳过contine后的语句,不打印,执行a++。
所以打印出的结果为1 2 3 4 6 7 8 9
#include<stdio.h> int main() { int a=0; for(a=1;a<=10;a++) { if(a==5) break; printf("%d",a); } return 0; }
下面分析本行代码的执行过程:与上↑个代码不同的是,当a自增到5时,本段代码停止运行,直接打印出1234。
(2)break,continue在while和do while语句中的应用。
#include<stdio.h> int main() { int a=0; while(a<10) { a++; if(a==5) continue; printf("%d ",a); } return 0; }
与(1)中第一个🌰相同,打印出的结果也为1 2 3 4 6 7 8 9 10。
当a++的位置不同,对结果也会有影响,这里我们要着重注意continue的作用是
#include<stdio.h> int main() { int a=0; while(a<10) { if(a==5) continue; a++; printf("%d ",a); } return 0; }
此时的结果为1 2 3 4 5(后死循环),这是因为continue跳过了后续语句,使a无法自增。
观察到程序运行结果为1 2 3 4 5。
有些同学可能会疑惑,为什么结果不是1 2 3 4,下面仔细讲解运行过程。
首先a初始化为0,a小于10,满足进入循环的条件。a++为1,打印1。(打印的内容为加加之后的内容)
第二次a为1,同样满足进入循环条件,a++为2,打印2。
第三次a为2,满足进入循环条件,a++为3,打印3。
第四次a为3,满足进入循环条件,a++为4,打印4。
第五次a为5,满足进入循环条件,a++为,5,打印5。
第六次a为6,满足进入循环条件,continue跳过后续语句,不打印也不能实现自增,自此,每一次a为6都能进入循环,但都不能自增,也不能打印。
(3)break,continue在do while语句中的使用。
#include<stdio.h> int main() { int a=0; do{ a++; if(a==5) continue; printf("%d ",a); } while(a<10); return 0; }
此时打印出的结果为:1 2 3 4 6 7 8 9 10
当然各个循环也可以嵌套!
这就是我对于c语言中嵌套和循环的理解。欢迎交流!由于本人对循环的理解还不是很透彻,可能有一些错误,欢迎在评论区指正!共同进步!