为什么需要分支语句?
分支语句形似一条河流,河流在交叉口会有许多分支,在程序执行的过程中亦是,程序是根据人的需求来编写的,程序由一条条的语句组合成,每条语句中间出产生某种必然的逻辑关系,单个的语法无法完成要执行的命令,这时就需要分不同的情况来讨论程序执行的下一步。
C语言中三大分支语句
一、if语句
1.基础说明
if语句用于根据条件判断执行不同的代码块。if语句可以单独使用,也可以与else if语句,else语句结合使用,形成if...else if....else if...else结构,用于处理多种不同的情况。
如果if后面的表达式1为真,则执行if语句后的代码块,即语句列表1,之后结束整个if语句的执行,输出 "helllo,world!"。
如果表达式1为假,则说明条件不满足,则跳过该代码块,也就是无需执行语句列表1,之后来到else if(表达式2)语句,判断表达式2是否为真,若为真,则执行语句列表2,之后结束整个if语句的执行,输出 "helllo,world!"。
若表达式2为假,则跳过语句列表2,之后来到else if(表达式3)语句,判断表达式3是否为真,若为真,则执行语句列表3,之后结束整个if语句的执行,输出 "helllo,world!"。
若表达式3为假,则跳过语句列表3,之后来到else语句,即最终的一个分支节点,这时说明以上的if条件语句都不满足代码编写者的需求,你会发现else之后没有条件判断语句,这也就是程序最终的选择,输出语句列表4所表达的内容。之后整个if语句判断结束,程序输出 "helllo,world!"。
#include<stdio.h>
int main()
{
if(表达式1)
{
语句列表1;
}else if(表达式2)
{
语句列表2;
}
else if(表达式3)
{
语句列表3;
}
else
{
语句列表4;
}printf("hello,world!");
return 0;
}
当然,每个分支语句中又可以嵌套if判断语句,相当于一层一层的套娃,这里不再进行列举,大家可以根据自己的需求简单上机操作一下。上面的代码模块可能看起来不是那么舒服,也可以参照下面的格式,逻辑看起来会比较明了。
#include<stdio.h>
int main()
{
if(表达式1){
语句列表1;
}else if(表达式2){
语句列表2;
}else if(表达式3){
语句列表3;
}else{
语句列表4;
}
printf("hello,world!");
return 0;
}
2.易错点
有时我们可能会忘记在判断语句下面漏写{},这时代码的可读性会非常差。在下面的两个代码块中只是else语句的位置有所不同,可以想一下两个程序的输出结果是什么呢?
在跟着鹏哥学习C语言的时候,我初想的是,不是只执行下面的一条语句吗,那结果输出应该是jjjjj。结果我的想法是错的,这里要注意的是此时的else语句是和第7行的if是对照的,如果有多个if判断语句,程序会优先和离else最近的,且并未和else语句匹配的if语句结合(就近原则),该程序中第7行到第10行是一整个大的代码块。若想要第9行的else语句和第6行的if语句是一组的话,需要将7,8行的代码用{}括起来,如下图。
#include<stdio.h>
int main()
{
int a = 0;
int b = 2;
if(a == 1){
if(b == 2)
printf("hhhhh");
}
else
printf("jjjjj");
return 0;
}
为了代码的可读性更好,请牢记{}的重要性,不要漏写,养成规范写代码的习惯。
总结:
最近在重新温习C语言,第一次线上记录学习的知识点,若有哪里不对的地方,请大家评论区给我留言,有什么好的学习建议也可以留言哈,我会慢慢改进的!!!
想问一下大家怎么在文章中的黑色背景代码块是怎么设置的呀,有的前面会有行数显示,例如下图中的。