前言:
人生是由一个个选择组成的,所谓选择,就是一道分叉路口。让我们就来学习一下计算机中的选择结构吧。
1.语句
语句相当于我们说的一句话。一句话用句号来结尾,语句用分号来结尾。了解一下一些基本的分类,我们开讲,if语句,if else语句和switch语句。
2.选择语句
2.1小栗子
在这里面,我们创建了一个名为choose的整型变量,用scanf来给choose输入值,if后面的判断部分,i == 1的意思是,i等不等于1?。==是一个判断是否相等的符号,我们叫它为关系操作符。
如果i等于1,符合条件,进入if的语句,不然就进入else的语句里面。
既然看到了这个东西,那就说明读者们都和博主一样决定好好学习编程,那就冲吧!
补充:复合语句
2.2选择结构
我们前面为choose输入1的时候,choose == 1是符合条件的,然后编译器让这个表达式的值为1,在计算机中非0的数都是真,语句就执行。
先来讲个小故事吧,有关else和else if的~~~。
看完博主相信读者懂了!
3.误导性else
我们看到右边控制台窗口,什么都没有打印。如果我们看代码,首先a==15是不符合条件的,所以我们会说,if控制的if语句不执行,执行else语句,打印hehe。
于是你ctrl+f5将程序运行起来,看到了个寂寞。这是为什么呢?因为else根本不是和if(a == 15)匹配的,是和if(b == 15)匹配的。也就是说,if(a == 15)控制的语句是 if else一整个语句,所以当if(a == 15)判断条件不成立,就什么都没有咯。这时我们说这段代码有误导性,不利于阅读,我们可以进行以下这样的修改。
涉及的知识点是else会与离得最近的还没有匹配的if进行匹配。
3.1写法上的可读性和代码的稳健性:
第一种写法,把{放在了判断条件后面,相比于第二种写法,更逊点。
还有就是判断部分,a == 5 和 5 == a是有什么讲究在里面吗?答案是有的,这是防止我们在判断一个变量是否等于一个数的时候由两个=,误写成了一个=。由于我们惯性思维,以为判断相等就写成了一个等号,但这在计算计中是赋值的操作,判断相等是==。
那为什么可以防止呢?因为我们怕错嘛,习惯这样写5 == a,有一次我们写成了这样5 = a,这个时候,编译器就报错了,因为我们把一个变量值赋给了常量,常量不能被改变,而变量才可以被改变。所以我们要是不小心这样写了a = 5,那跑出来的结果不言而喻,肯定是有出入的。
在判断相等的时候,常量放在左边,变量放在右边,等号要写两个!
3.2一些练习
1.判断奇偶
2.打印1-100之间的奇数
2-1.
4.switch选择语句
因为把break;单独放在一行上屏幕显示不全代码,所以我把break;放在printf同行上了,不过这样也还可以接受,代码也没错的。
我们输入1,switch接入到case 1;,打印完星期一后遇到break;跳出switch语句。
case入口里的代码没有break的话,是无法成为单独的一个分支的,因为它会“滑”落,也许给个图大家就明白了。
break是实现case语句分支的关键字。
我们这里输入8,然而没有任何一个标签是8,如果我们设有default的话,那就走默认情况啦。好的编程习惯就是要加上defualt,并且每一种情况加上break,当然break不是一定要加。就像我们前面输入1、2、3、4、5都是输入工作日一样,就没必要加上break,加上反而要多加语句printf到相应的case下面,所以应该视情况而定。
4.1嵌套的switch
n是1进入case 1;然后case 1 里面有个switch(m),m是2,走了switch(m)的case 2情况,然后自然出内部switch,switch(n)的case 1结尾并没有break,那么就“滑”落,滑到了default,我们就看到屏幕上的内容啦。
好啦,这就是这节循环所讲的全部内容啦。尽力认真做好每一个选择,有舍才有得,做减法并不可惜,因为,那是在为更好的事情准备着!
结语:希望读者读完有所收获!在学C的路上,祝福我们能越来越C!✔
读者对本文不理解的地方,或是发现文章在内容上有误等,请在下方评论区留言告诉博主哟~,也可以对博主提出一些文章改进的建议,感激不尽!最后的最后!
❤求点赞,求关注,你的点赞是我更新的动力,一起努力进步吧。