在C语言中,我们要判断一个事件是否成立,常常会用到一些判断语句,而这些判断语句还需要一个判断条件,以及条件为真时要执行的语句(必要的)和条件为假时要执行的语句(非必要的)。C语言把任何非零和非空的值假定为 true,把零或null假定为false。
C语言支持的所有判断语句,如下表格所示:
您可以在一个 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 的值,结果即为整个表达式的值。
实例:判断一个数的奇偶性
源代码如下:
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语句,将上述实例改写后的源代码如下:
int main() | |
{ | |
int number; | |
printf("输入一个数字 : "); | |
scanf("%d",&number); | |
if (number%2==0) | |
{ | |
printf("%d是偶数",number); | |
}else | |
{ | |
printf("%d是奇数",number); | |
} | |
return 0; | |
} |