在C语言中,我们要判断一个事件是否成立,常常会用到一些判断语句,而这些判断语句还需要一个判断条件,以及条件为真时要执行的语句(必要的)和条件为假时要执行的语句(非必要的)。C语言把任何非零和非空的值假定为 true,把零或null假定为false。
C语言支持的所有判断语句,如下表格所示:
语句 | 描述 |
---|---|
if 语句 | 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。 |
if...else 语句 | 一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为假时执行。 |
嵌套 if 语句 | 您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。 |
switch 语句 | 一个 switch 语句允许测试一个变量等于多个值时的情况。 |
嵌套 switch 语句 | 您可以在一个 switch 语句内使用另一个 switch 语句。 |
if语句实例:判断某年是否为闰年
源代码如下:
#include <stdio.h>
int main()
{
int year,result = 0;
printf("请输入年份:");
scanf("%d",&year);
if(year%4==0)
{
if (year%100!=0)
{
result = 1;
}
else if (year%400==0)
{
result = 1;
}
else
{
result = 0;
}
} else
{
result = 0;
}
if (result==1)
{
printf("%d是闰年",year);
} else
{
printf("%d不是闰年",year);
}
return 0;
}
运行编译上面的源代码,输入2024将会输出以下结果:
2024是闰年
switch语句实例:简单的计算器
源代码如下:
#include<stdio.h>
int main()
{
float a,b;
char c;
printf("请按照顺序输入 一位整数、运算符号、一位整数:\n");
printf("例如:计算3+2,可依次输入3+2 \n");
scanf("%f%c%f",&a,&c,&b);
switch(c)
{
case '+' :
printf("%f %c %f = %f \n",a,c,b,a+b);
break;
case '-' :
printf("%f %c %f = %f \n",a,c,b,a-b);
break;
case '*' :
printf("%f %c %f = %f \n",a,c,b,a*b);
break;
case '/' :
printf("%f %c %f = %f \n",a,c,b,a/b);
break;
}
return 0;
}
运行编译上面的源代码,输入3+5将会输出以下结果:
3.000000 + 5.000000 = 8.00000
? : 运算符(三元运算符)
条件运算符 ? :,可以用来替代 if...else 语句。条件运算符形式如下:
表达式1 ? 表达式2 : 表达式3
使用三元运算符需要注意问号、冒号的位置。
?表达式的值是由 表达式1 决定的。如果 表达式1 为真,则计算 表达式2 的值,结果即为整个表达式的值。如果 表达式1 为假,则计算 表达式3 的值,结果即为整个表达式的值。
实例:判断一个数的奇偶性
源代码如下:
#include<stdio.h>
int main()
{
int number;
printf("输入一个数字 : ");
scanf("%d",&number);
(number%2==0) ? printf("%d是偶数",number) : printf("%d是奇数",number);
return 0;
}
运行编译上面的源代码,输入12将会输出以下结果:
12是偶数
运行编译上面的源代码,输入13将会输出以下结果:
13是奇数
三元表达式可以改写成if...else语句,将上述实例改写后的源代码如下:
#include<stdio.h>
int main()
{
int number;
printf("输入一个数字 : ");
scanf("%d",&number);
if (number%2==0)
{
printf("%d是偶数",number);
}else
{
printf("%d是奇数",number);
}
return 0;
}