在本教程中,您将在示例的帮助下了解C语言编程中的if语句(包括if … else和嵌套if…else)。
ifC语言编程中该语句的语法为:
示例
if (test expression)
{
//测试表达式为真时,执行的语句
}
if语句在括号()内评估测试表达式。
要了解有关何时将测试表达式评估为true(非零值)和false(0)的更多信息,请检查关系运算符和逻辑运算符。
//程序显示一个数字,如果它是负数
#include
int main() {
int number;
printf("输入一个整数: ");
scanf("%d", &number);
//如果数字小于0,则为true
if (number < 0) {
printf("您输入 %d.\n", number);
}
printf("if语句很简单。");
return 0;
}
输出1
输入一个整数: -25
您输入 -25.
if语句很简单。
当用户输入-25时,测试表达式number<0将评估为true。因此,您输入的-25 将显示在屏幕上。
输出2
输入一个整数: 5
if语句很简单。
当用户输入5时,测试表达式number<0的计算结果为false,并且if不执行主体内部的语句
if语句可以有一个可选的else块。if…else语句的语法为:
示例
if (test expression) {
//测试表达式为真时,要执行的语句
}
else {
// 如果测试表达式为假,则执行的语句
}
如果测试表达式(test expression)的计算结果为true,
如果测试表达式(test expression)的值为false,
// 检查一个整数是奇数还是偶数
#include
int main() {
int number;
printf("输入一个整数: ");
scanf("%d", &number);
//如果余数为0,则为true
if (number%2 == 0) {
printf("%d 是一个偶数。",number);
}
else {
printf("%d是一个奇数。",number);
}
return 0;
}
输出结果
输入一个整数: 23
23 是一个奇数。
当用户输入23时,(test expression)测试表达式 number%2==0 的评估结果为false。因此,将执行else主体内的语句。
if…else语句执行两个不同的代码,具体取决于测试表达式(test expression)为true还是false。适用于必须从两种以上的可能性中进行选择。
if…else if…else允许您在多个测试表达式之间进行检查并执行不同的语句。
示例
if (test expression1) {
// 语句
}
else if(test expression2) {
// 语句
}
else if (test expression3) {
// 语句
}
.
.
else {
// 语句
}
//程序使用=、> 或< 符号比较两个整数
#include
int main() {
int number1, number2;
printf("输入两个整数: ");
scanf("%d %d", &number1, &number2);
//检查两个整数是否相等
if(number1 == number2) {
printf("结果: %d = %d",number1,number2);
}
//检查number1是否大于number2。
else if (number1 > number2) {
printf("结果: %d > %d", number1, number2);
}
//如果以上两个测试表达式均为false,则执行下面语句
else {
printf("结果: %d < %d",number1, number2);
}
return 0;
}
输出结果
输入两个整数: 12
23
结果: 12 < 23
可以在另一个if…else语句的主体中包含另一个if…else语句。
此程序下面给出使用任一涉及两个整数<,>和=类似if…else阶梯的实例。但是,我们将使用嵌套if…else语句来解决此问题。
#include
int main() {
int number1, number2;
printf("输入两个整数: ");
scanf("%d %d", &number1, &number2);
if (number1 >= number2) {
if (number1 == number2) {
printf("结果: %d = %d",number1,number2);
}
else {
printf("结果: %d > %d", number1, number2);
}
}
else {
printf("结果: %d < %d",number1, number2);
}
return 0;
}
如果if…else语句的主体只有一个语句,可以不需要使用方括号{}。
例如,下面代码
示例
if (a > b) {
print("Hello");
}
print("Hi");
等同于
示例
if (a > b)
print("Hello");
print("Hi");