一、总述
分支语句,也叫作选择语句。
在C语言当中一共有两种分支语句:if-else语句,switch语句。
二、if语句
if语句的语法结构如下:
if ( expression ) statement
if ( expression ) statement else statement
if的括号里面写条件判断,为真(非0)执行,为假(0)不执行。
if-else语句只会执行其中一个,支持嵌套。
if只能控制一条语句,如要控制多条语句必须加{}。
以下是一些举例
int main()
{
int a = 9;
int b = 10;
if (a > b)
printf("big=%d", a);
else
printf("big=%d", b);//执行这一条
return 0;
}
int main()
{
int a = 9;
int b = 10;
if (a < b)
{
int t = a;//多语句加{}
a = b;
b = a;
}
//可以不用else
printf("%d", a);
return 0;
}
ps:为了养成良好的代码素养,不论是单语句还是多语句,都建议加上{}。
else与最近未匹配的if配对,和缩进没有关系。
举个例子:
int main()
{
int a = 9;
int b = 10;
if (a > b)//标记为<1>
{
int t = a;
a = b;
b = a;
}
if (a == b)//标记为<2>
{
printf("%d", a);
}
else
{
printf("%d", b - a);//执行这一条,else与<2>匹配,结果是1
}
return 0;
}
这种代码存在让人误解的问题,不要乱缩进,养成良好习惯。
三、switch语句
switch语句语法结构如下
switch ( expression ) statement
labeled-statement :
case constant-expression : statement
default : statement
switch的括号里面必须是整型数值,也可以是字符,但不能是浮点。
注意:case不进行条件判断,只作为开关,没遇到break后续全部会执行。
default的位置可以随意放,也可以不写。
switch语句支持嵌套
以下是一些举例
int main()
{
int day = 1;
switch (day)
{
case 1:
day++;
case 2:
day++;
case 3:
day++;
default:
day++;
}
printf("%d", day);//全部执行,最后结果是5
return 0;
}
int main()
{
int day = 1;
switch (day)
{
case 1:
day++;
break;
case 2:
day--;
break;
case 3:
day += 2;
break;
default:
day += 3;
break;
}
printf("%d", day);//break跳出,不会继续执行,结果是2
return 0;
}