在本教程中,您将在示例的帮助下了解C语言编程中的if语句(包括if ... else和嵌套if..else)。
ifC语言编程中该语句的语法为:
if (test expression) { //测试表达式为真时,执行的语句 }
if语句在括号()内评估测试表达式。
如果测试表达式的计算结果为true,则将if执行主体内部的语句。
如果测试表达式的计算结果为false,if则不会执行主体内的语句。
要了解有关何时将测试表达式评估为true(非零值)和false(0)的更多信息,请检查关系运算符和逻辑运算符。
//程序显示一个数字,如果它是负数 #include <stdio.h> 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,
if内的语句被执行。
主体中else的语句从执行中跳过,即else中的语句不会被执行。
如果测试表达式(test expression)的值为false,
else内的语句会被执行
if主体中的语句会被跳过,即不会执行。
// 检查一个整数是奇数还是偶数 #include <stdio.h> 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 <stdio.h> 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 <stdio.h> 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");