条件判断语句也叫分支语句,就是选择结构,它可以根据你所设置的不同的选项,输出对应你所设置的结果。
它分为if语句和switch语句。
1.if语句
1.基本形式(单分支)
if(表达式)
语句;
表达式成立时,语句为真,则语句执行。
2.else语句
if(表达式)
语句1;
else
语句2;
3.{}的使用
if语句后面默认只能控制一条语句
不管表达式是否为真,语句2都会输出,就是因为if只控制一条语句。如果想让if同时控制两条或者多条语句,就可以使用{}。
4.嵌套if(else与另一个if连用,构成多重判断)
if(表达式1)
语句1;
else if(表达式2)
语句2;
……
else
语句;
//要求输入一个整数,判断输出的是0,还是正数或者负数
int main()
{
int num = 0;
scanf("%d", &num);
if (num == 0)
{
printf("%d 是0\n");
}
else if (num > 0)
{
printf("%d 是正数\n");
}
else
{
printf("%d 是负数\n");
}
return 0;
}
还有两种形式
嵌套在前面的else语句中
if(表达式1)
语句1;
else
{
if(表达式2)
else
}
嵌套在前面的if语句中
if(表达式1)
{
if(表达式2)
else
}
else
5.悬空else
如果有多个if和else,else总是和最接近的if相匹配。
如上代码并没有按想的输出100,这是因为第一个if不成立,后续语句没有执行,正确的代码应该如下。
2.switch语句
是一种特殊的if…else语句,用于判断条件有多个结果的情况,它改写了多重else if。
1.形式
switch(expression)
{
case value1:statement;
case value2:statement;
default:statement;
}
根据表达式expression不同的值,执行相应的case分支。如果找不到对应的值,就执行default分支。
其中,expression必须是整型表达式,case后的值必须是整型常量表达式。
输入1~5,输出工作日;输入6~7,输出休息日。
#include<stdio.h>
int main()
{
int day = 0;
scanf("%d", &day);
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
case 6:
case 7:
printf("休息日\n");
break;
return 0;
}
break表示跳出循环。
default:如果switch后的表达式中的值无法匹配代码中的case语句时,用到default。