1.if
结构:if(表达式) 语句 含义:表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行。 例子:判断一个人是否为花甲之年
由此可加当需要执行的语句为两句或两句以上时需要{},反之则不需要。 嵌套的if: if else 语句中,else可以与另外一个if语句连用,构成多重判断。 例子:输入一个大于10的数,判断是2,3,5哪一个的倍数
行的else后面的语句到 行的前面,就是嵌套在else语句中的,构成了嵌套的if语句。 悬空else问题 如果有多个if和else,有这样一条规则,else总是跟最近的if匹配。
很多萌新在学到这里的时候,都会认为,a=0,但a不等于1,于是就会去执行else后面的语句,输出干gan。 但事实上什么都不会输出。
因为这就是悬空else问题,如果出现了多个if和else,就会有这样一条规则,else总是跟最近的if匹配。这也就是为什么上述代码最终什么都不输出的原因。 事实上,换一种写法就能更直观地理解了为什么会出现这种情况的原因了。
如下:
由此可见,只要加上了{},代码的逻辑更加清晰,会让代码的可读性更高。
除了if语句外,switch语句来实现分支结构。而本质上是一种特殊形式的if...else结构,用于判断条件有多个结果的情况。它把多重的else if改成更易用,可读性更好的形式。
结构:
switch(expreesion)
{
case value1:statement;
case value2:statement;
default: statement;
}
注意:switch后的expression必须是整型表达式,case后面的值,必须是整型常量表达式 和if语句的对比:例子:输入一个数,计算除3过后的余数
如果用if语句写的话,如下:
如果用switch-case语句写的话,如下:
在上述的代码中,需要注意的点有:
一、case 和后面的数字之间必须有空格
二、每个case语句执行完成后,需要加上一个break,才能跳出这个switch语句
在上面的代码中,如果去掉了break,会出现什么情况呢?
我们发现,3是可以被3整除的吗,但却多打印了两行。因为switch语句也是有分支效果的,只有在语句中使用了break,才可以跳出switch语句,如果某一个case语句的后面没有break语句,代码将继续执行下去,有可能执行其他语句中的代码,直到遇到了break或者switch语句结束,所以上述代码中,还执行了case 1和case 2。
所以,switch语句中break语句是非常重要的,能实现真正分支的效果。
当然,break语句也不是每个switch语句中是必须要有的,这就要根据实际情况考虑了。
switch语句中的default:
在使用switch语句中也会遇到一种情况,switch后的表达式中的值无法匹配代码中的case语句,这时要不不做处理,要不就在switch语句中加入default语句。
结构:
switch(expression)
{
case value1:statement;
case value2:statement;
default:statement;
}
switch语句后边的expression结果不是value1,也不是value2的时候,就会执行default语句。而switch语句中case语句和default语句是没有顺序要求的,只要满足实际需求即可。只是default语句通常放到最后处理的。
结构
while(表达式)
语句;
4.for
结构:
for(表达式1;表达式2;表达式3)
语句;
表达式1:用于循环变量的初始化
表达式2:用于循环结束条件的判断
表达式3:用于循环变量的调整
例子:在屏幕上输出1到5
和while的对比:两者在循环过程中都有初始化,判断,调整这三部分,但是for循环的三个部分都非常集中,便于代码的维护,而如果代码较多的时候while循环的三个部分就很分散,所以从形式上for循环更优。
结构:
do
语句;
while(表达式);
do while循环是先进入循环体,执行循环语句,然后执行while后的判断表达式,表达式结果为真,就会执行下一次,表达式为假,则不在继续循环。
例子:在屏幕上输出1到5
6.break 和 continue
在循环执行的过程中,遇到了某种情况时,需要提前终止循环,这是很常见的情况,在C语言中提供了break和continue两个关键字,就是应用在该循环中的。
break的作用是永久终止循环,只要break被执行,直接就会跳出循环,继续往后执行。
continue的作用是跳过本次循环continue后面的代码,在for循环和while循环中有所差异。
while循环中的break和continue:
break举例:
打印了1 2 3 4后,当a等于5时,循环在break的位置停止执行,不再打印,不再循环。
所以,break的作用是终止循环,只要break被执行,break外层的第一层循环也就终止了。
continue举例:
continue的作用就是跳出本次循环中continue后面的代码,继续进行下次循环的判断。
将上面的代码中的break换成continue,会发生什么事呢,让我们来看一下。
for循环中的break和continue:
break举例:
和while循环一样,for循环中的break也是用于终止循环的,不管循环还要执行多少次,只要执行了break语句,循环将彻底终止,将不再执行。
举例:
所以在for循环中continue的作用跳出本次循环中continue后的代码,直到循环的调整部分。未来当某个条件发生的时候,就可以使用continue来实现。