如图是 if 语句最简单的逻辑应用,下面代码展示
注:if后面若仅跟一条语句,则后面的 {} 可加可不加,有 {} 的意思是,语句块,你若if里面的条件表达式成立,你必须把我这整个语句块的代码,都执行完,所以:若后面有多条要执行的语句,你不加 {} ,则默认第一条语句,受if语句控制;
目的是更好表示,多分支的情形(根本是if语句的嵌套);
例一;虽然从这张代码截图来看,有没有else语句,都不影响整个代码的逻辑,但是有else,能让我们更清晰的理解分支语句,以及表现了我们良好的代码风格,所以,你还觉得有没有else语句都无所谓吗?
例二;
左右两边的代码逻辑一致,但代码不如右边的简易。
以这张图的代码为例,请问程序运行的结果是什么?是haha还是hehe?。。。来看程序运行结果:
实际上,什么都不打印,为什么呢? 其实这里,只要把代码的逻辑,与对应关系处理好,就会很明白了,
首先else语句与哪个if对应?,是if( a == 1),还是if( b == 2 )?,这里很明确的告诉一个结论,else与最近的if对应。
其次if(b==2)受if(a == 1)控制,所以if(a == 1)不成立时,不进行后面的if();else();直接进行return语句;
在C语言中,除了 if 语句,可以表达分支以外,C语言也提供了switch语句来表达分支。
若要表示多分支的逻辑,用多个case即可完成。要特别注意的是,switch中的表达式必须是整型类型,case后面的则必须是整型类型的常量。下面举个例子:(输入一个数,然后打印出来对应的一周的哪一天)
我输入数字 1 时,运行的程序是:
switch语句确实通过我们输入的值,然后从哪一条case语句运行,但是它并没有运行这条case语句之后停止,而是把后面所有的case语句都运行完。为了解决这一问题,我们可以使用break这个关键字。
我们再次输入数字1,数字四时,运行如下:
根据这一特性,我们可以根据我们的需要对其进行更合理的运用;
default语句的作用是:若switch(),表达式的结果,不满足任意一个case时,就执行default后的语句。default的用法简单,就举个代码例子感受一下把(为了更明显看到代码运行的结果验证,我用了一个多次输入的语句)
顺序是不作要求的,不仅仅case语句与default语句不作要求,就连多个case之间的的顺序也不做要求。