返回

关于C++中的分支语句

发布时间:2023-01-13 23:08:35 228

首先,我们要明白关于语句的定义,即在C语言中,由“;”隔开的语句就是一条语句。特殊的是,单独的一个“;”也是一条语句,称之为空语句。

分支语句又叫选择语句,分为IF语句Switch语句,两种语句均可嵌套使用。接下来,我将分别介绍两种语句。

1.IF语句

IF语句大体上有三种语法结构  分别为单语句型,双分支语句型和多分支语句型。

单语句型

int main()
{int a=1;
if(a<=10)
{printf("%d\n",a);}
return 0;
}

该代码块的意思是如果表达式a<=10成立,那么就执行下面的语句。否则什么都不执行,直接返回;

双分支语句型

int main()
{int a=1;//初始化
it(a<=10)
{printf("%d\n",a);}
else{printf("a不符合条件\n");}
return 0;
}

意思是如果表达式a<=10成立,执行打印a的操作;如果条件不成立,则打印a不符合条件;

多分枝语句

int main()
{int age=10;
if(age<=18)
{printf("未成年\n");}
else if(age>18&&age<=40)
{printf("壮年\n")}
else{printf("年龄较大\n");}
return 0;
}

意思是如果age<=18成立,打印未成年;如果age>18且age<=40,打印壮年。其他条件打印年龄较大。多分支语句通常能够解决多选择的问题。同时接下来介绍的Switch语句也能达到同样的目的,但是二者又各有千秋,可以 比比看。

除了以上三种语句,我还希望再介绍一种悬空else语句,帮助大家理解if语句。

int mian()
{int a=0;
int b=2;
if(1==a)//在这里给大家一个小技巧,在判断相等时,如果写成a=1,编译器是不会报错的,但会让我们的代码达不到我们想要的效果,所以建议大家在写代码时将数字写在左边,如果
//写成了赋值号,那么编译器将会报错。
if(b==2)
printf("hehe\n");
else
printf("haha\n");
return 0;
}

运行上面的代码,会发现没有打印任何东西。而我们的想法是即使a!=1的 情况下,也会打印haha。那么原因是什么呢?原因是else 会与最近的未被匹配的if进行匹配。如果用的是vis的话,会发现靠下的if和else会自动的对齐,这个就告诉了我们其中的道理。对上面的代码进行分析,只是一个简单的IF单语句;如果想代码达到我们想要的功能,可以用{}把第一个If下执行的语句括起来形成代码块,这样就将else与距离较远的if进行匹配,输出haha.所以希望新手初学时,要注意if和else后面跟{},这样既能减少错误,又可以让别人读懂

2.Switch语句

int main()
{int a=0;
scanf_s("%d",&a);
switch(a)
{ case 1:
printf("星期一");
break;
case 2
printf("星期二");
break;
case 3
printf("星期三";
break;
case 4:
printf("星期四");
break;
case 5:
printf("星期五");
break;
case 6:
printf("星期六");
break;
case 7:
printf("星期日");
break;
default:
printf("输入错误");
break;}

return 0;
}

大家线看一看代码,在运行一下,可以发现,给定特定的值,就会有特定结果输出。从代码中也可以提取处Switch的语法结构

switch(整形表达式)
{case语句;}

一定要注意,switch 后跟的一定是整形表达式,浮点数是一定不可以的。可以自己试一下。

并且case后面跟的必须是常量表达式,不能是变量;

还有关于break的作用。break是用来跳出分支的。如果把所有break全部删掉,执行程序,可以发现会从星期一打印到星期日,不会从程序中跳出。这中现象也告诉我们switch语句并不是跳着执行的,他也是一行接着一行的在进行编译,只有遇到break才会跳出程序 。

其实并不是每一个case后面都加break,break的写与不写完全是根据实际要求来确定。如果要求输入1,2,3,4,5时,要求输出工作日,那么星期一到星期四后面的printf语句和break都要删去的。

关于default语句,对其解释就是如果输入的内容不满足case中的任何一个条件,需要添加default来进行额外补充。

以上就是我自己学习到的一些知识,我自己也是一名刚接触计算机知识的大学生,如有错误,还请及时指出,评论区见。。谢谢

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
C语言——指针(进阶) 2023-01-13 22:44:38