目录
四.循环中的break语句、continue语句和goto语句
分支语句
什么是的分支语句? 分支语句也叫选择语句。
举个例子
一.if语句
if语句在C语言中有三种形式。
解释一下
在()中的表达式成立时,执行 { } 中的语句。
还有要注意的就是,表达式的写法规范,比如应该写成age >= 18 && age < 30 ,这里千万要注意,不能写成了18 <= age < 30
if语句的执行过程一般分为三步
- 先执行()内表达式,得到真假结果
- 对结果进行条件判定
- 执行分支功能
注意:在C语言中0为假,非0为真。
在()中的表达式成立时,如果只执行一条语句可以不加 { } ,若要执行多条语句,则要使用 { }。
在使用if语句时,我们可以适当的使用 { } 这样可以使我们代码的逻辑更清晰。
在这里需注意:else总是与它离的最近的if结合。
二.switch语句
switch语句也是一种分支语句。
常用于多分支的情况。
比如
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日
这样的语句如果写成if...else的形式就太复杂了,所以我们就有了不同的语法形式。
注意,在switch语句中,我们没法直接实现分支,需要搭配break使用,才能实现真正的分支!
这里break语句的实际效果是把语句列表划分为不同的分支部分。
如果不加break,程序则会将每一个case全都判断一遍;加上break,则如果某一个case语句判断成功被执行,就会直接跳出整个switch语句。
【编程好习惯】:不管如何,在最后一个case语句后面加上一条break语句
default语句:
写在任何一个case标签可以出现的位置,当switch表达式的值并不匹配所有case标签时,这个default子句后面的语句就会执行,所以每个switch语句中只能出现一条default语句。
【编程好习惯】:在每一个switch语句中都放一条default子句是个好习惯,甚至还可以在后面加上break
循环语句
在生活中我们会发现总有一些事情我们重复很多遍,反复的去做。
那么在编程的过程中发现一段程序需要多次的去执行,我们应该怎么做。
所以在C语言中我们引入了循环语句
- while
- do...while
- for
一.while循环
while执行流程:
比如我们想在屏幕上打印1-10的数字
while循环先进行条件判断(即 ( ) 内表达式结果为真),条件成立时,执行循环体,循环体执行完毕后,再次进行条件判断,直到条件不满足,退出循环。
二.do...while循环
do...while循环的特点是先执行循环体再进行条件判断,所以循环体至少会被执行一次。
注意:在do..while循环中()后的分号;不能省略!!
三.for循环
表达式1为初始化部分,用于初始化循环变量
表达式2为条件判断部分,用于判断是否终止循环
表达式3为调整部分,用于循环条件的调整
一些for循环的变种及说明
1) 表达式1作用于循环之前进行循坏初始化, 特别是对循环控制变量赋初值。表达式1可以省略,当省略表达式1时,应在循环语句前,给相关变量赋初值。例如:
int i=1;
for(;i<100;i++)
sum+=1;
2)表达式2作用于表明循环的条件,即在什么条件下执行循环体。表达式2也可以省略,但省略表达式2时,应在循环体中,用if语句设置退出循环的条件,否则会陷入死循环。例如:
for(i=1;;i++)
{
if(i>100)
break;
sum+=1;
}
3)表达式3作用于在执行循环体一次之后的某些处理, 如对循环控制变量进行增量计算。表达式3也可以省略,当省略表达式3时,需在循环体中进行增量计算,否则会陷入死循环。例如:
for(i=1;i<=100;)
{
sum+=1;
i++;
}
4)无论省略哪个表达式,被省略的表达式后面的分号都不能省略,所以在for语句的括号内有且只有两个分号。
5) for后面的语句是循环体,如果是由多条语句组成。一定要用花括号 “{)” 括起
6)省略循环体(即循环体为空语句),此时需要循环的处理往往在表达式3中完例如:
for(i=1;i<=100;sum+=1,i++);
建议 不可在for循环体内修改循环变量,防止for循环失去控制
四.循环中的break语句、continue语句和goto语句
break语句在循环中的作用
举个例子
这段代码的输出结果是什么呢?
结果为1 2 3 4
所以 break语句在循环中的作用:break是永久终止循环;
continue语句在循环中的作用
也举个例子
这段代码的输出结果又是什么呢?
结果是1 2 3 4 6 7 8 9 10
所以 continue语句在循环中的作用:continue是用于终止本次循环的,也就是说本次循环中continue后面的代码不会执行,而是直接跳转到while语句的判断部分
说明:在do...while和while中continue是转跳到判断部分再次进行条件判断,而在for循环中使用continue则是转跳到循环变量的调整部分。
goto语句
C语言中提供了可以随意使用的goto语句和标记转跳的标号
在实践中没有goto语句也可以很容易写出代码,但在某些情况下goto语句还是用的着的。
最常见的就是终止程序某些深度嵌套的结构的处理过程。
比如:一次跳出两层或多层循环。
for(......){
for(......){
for(......){
if(....)
goto end;
}
}
}
end:
...
这种多层循环的情况使用break是达不到目的的,它只能跳到上一层循环。
结束语
C初阶——分支与循环的部分就到此就结束咯,当中的代码大家都可以敲一敲感受一下哦。感觉有所收获的铁汁们给笔者来个三连吧,感谢喔。