一、if语句
1.if语句的语法格式
if (表达式) 表达式结果为非0则执行语句,为0则不执行语句
语句;

if (表达式) 如果表达式结果为非0则执行语句1,为0则执行语句2
语句1;
else
语句2;

if (表达式1) 表达式1结果为真则执行语句1,为假则判断表达式2的真假,表达式2为真执
语句1; 语句2,为假则判断表达式3的真假,以此类推..........如果前n个表达式都为假
else if(表达式2) 则执行语句n+1.
语句2;
................
else if(表达式n)
语句n;
else
语句n+1;
注:以上的if语法形式中,如果语句只有一条则{}可加可不加,如果有两条语句则必须加上{}。
因为c语言中 if 和 else 都只能控制一条语句。
2.悬空else问题
int main()
{
int a=0,b=2;
if (a==1)
if(b==2)
printf("你好\n");
else
printf("谢谢\n");
return 0;
}
如果你是初学者可能会根据对齐格式认为 else 会与 if (a==1)匹配,但其实 else 是与 if(b==2)匹配的。
如果不理解,可记住一条规则 else 总是和最近的 if 匹配 (即如果 else 在代码第7行,则从第7行往上找到最近的 if 和自己匹配)
如果想 else 和 if(a==1)匹配可以这样写代码
if (a==1)
{
if(b==2)
printf("你好\n");
}
else
printf("谢谢\n");
二、switch语句
1.switch语法格式
switch (整形表达式)
{
case 整形常量表达式1:
case 整形常量表达式2:
....................
case 整形常量表达式n:
default:
语句;
}
根据switch中整形表达式的值执行相应的case分支。如果找到不到对应的值,就执行default分支。
例 :若整形表达式为2,则从case 整形常量表达式等于2的case语句进入,让后往下依次执行直到走出switch语句(不执行default分支)。如果执行到某处语句不想往下继续执行了,可以用break跳出switch语句。
注 1.case 和后面的数字即整形常量表达式之间必须有空格
2.case语句和default语句是没有顺序要求的,只要代码写的顺序满足实际需求就行了。

4056

被折叠的 条评论
为什么被折叠?



