C语言是结构化的程序设计语言,这里的结构指的是顺序结构、选择结构、循环结构。
在分支结构中通过if、switch 实现
1、单分支:if (表达式)
语句;
功能:先计算表达式的值,若为“1”,则执行“语句”,然后再执行后续语句。若为“0”,直接执行后续语句。
2、双分支:if (表达式)
语句1;
else
语句2;
功能:先计算表达式的值,若为“1”,则执行“语句1”,然后再执行后续语句;若为“0”,则执行“语句2”,然后执行后续语句。
注意:(1)应把if语句看成一条语句,分为两部分,写两行,并后缩。
(2)在if和else语句中默认都只控制一条语句,所以当语句包含多个条件(语句)时,要用{}括起来组成复合语句也叫程序块。
(3)多分支由双分支构成。
(4)悬空else问题:有多个if和else时,else总是与最靠近的if匹配。
(5)多分支的形式有多种,构成if…else嵌套。
(6)任何多分支都可用多个单分支完成。
(7)”条件表达式”中若为与运算&&,若&&前面的式子值为0,则不再运算&&后面的式子。
3、多分支-else if:if (表达式1)
语句1;
else if (表达式2)
语句2;
else if (表达式3)
语句3;
else
语句4;
4、多分支switch:switch (表达式)
{
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
……
case 常量表达式n:
语句n;
break;
default:
语句n+1;
break;
}
要点: 1)功能:先计算表达式的值,与case后的常量表达式相同时,则进入,若都不相同则从default中进入。进入后顺序执行,遇break则退出switch语句。
2)default语句可有可无,位置可先可后。
3)表达式的结果只能是整型值或字符值,case后面一定要只能是整型常量或字符常量。
4)break不是每个case语句都得有,这得看实际情况。
5)在swith语句中case语句和default语句是没有顺序要求的,但不能影响代码逻辑。通常是把default子句放在最后处理。
6)switch后的expression必须是整型表达式,字符也可以,因为字符存储是ASCII值
7)case后的值,必须是整形常量表达式
特别要注意:(1)C语言中是用非0表示逻辑真的,用0表示逻辑假的。
(2) C语言有构造类型,没有逻辑类型。
(3) 关系运算符号:注意<=的写法,==(相等运算符)和=(赋值运算符)的区别
(4) case和后边的数字之间必须要有空格
(5) 每个case语句中代码执行完成后,需要加上break,才能跳出这个switch语句,否则只能判断从哪进,不能判断从哪出