C if语句
C编程中if
语句的语法为:
if (test expression)
{
// statements to be executed if the test expression is true
}
如果语句如何工作?
if
语句在括号()
评估测试表达式。
- 如果测试表达式的计算结果为true,则执行
if
体内的语句。 - 如果测试表达式的计算结果为false,则不会执行
if
体内的语句。
要了解有关何时将测试表达式评估为true(非零值)和false(0)的更多信息,请检查关系运算符和逻辑运算符。
示例1:if语句
// Program to display a number if it is negative
#include
int main() {
int number;
printf("Enter an integer: ");
scanf("%d", &number);
// true if number is less than 0
if (number < 0) {
printf("You entered %d.\n", number);
}
printf("The if statement is easy.");
return 0;
}
输出1
Enter an integer: -2
You entered -2.
The if statement is easy.
当用户输入-2时,测试表达式number<0
评估为true。因此, 您输入的-2将显示在屏幕上。
输出2
Enter an integer: 5
The if statement is easy.
当用户输入5时,测试表达式number<0
被评估为false,并且if
体内的语句未执行
C if … else语句
if
语句可能具有可选的else
块。 if..else
语句的语法为:
if (test expression) {
// statements to be executed if the test expression is true
}
else {
// statements to be executed if the test expression is false
}
如果… else语句如何工作?
如果测试表达式的计算结果为true,
-
if
体内的语句被执行。 -
else
主体内的语句将从执行中跳过。
如果测试表达式的值为假,
-
else
体内的语句被执行 -
if
体内的语句将从执行中跳过。
示例2:if … else语句
// Check whether an integer is odd or even
#include
int main() {
int number;
printf("Enter an integer: ");
scanf("%d", &number);
// True if the remainder is 0
if (number%2 == 0) {
printf("%d is an even integer.",number);
}
else {
printf("%d is an odd integer.",number);
}
return 0;
}
输出
Enter an integer: 7
7 is an odd integer.
当用户输入7时,将测试表达式number%2==0
评估为false。因此,将执行else
主体内部的语句。
C如果…其他阶梯
if...else
语句根据测试表达式是true还是false来执行两个不同的代码。有时,必须从两种以上的可能性中进行选择。
if … else阶梯允许您在多个测试表达式之间进行检查并执行不同的语句。
if … else Ladder的语法
if (test expression1) {
// statement(s)
}
else if(test expression2) {
// statement(s)
}
else if (test expression3) {
// statement(s)
}
.
.
else {
// statement(s)
}
示例3:C if … else Ladder
// Program to relate two integers using =, > or < symbol
#include
int main() {
int number1, number2;
printf("Enter two integers: ");
scanf("%d %d", &number1, &number2);
//checks if the two integers are equal.
if(number1 == number2) {
printf("Result: %d = %d",number1,number2);
}
//checks if number1 is greater than number2.
else if (number1 > number2) {
printf("Result: %d > %d", number1, number2);
}
//checks if both test expressions are false
else {
printf("Result: %d < %d",number1, number2);
}
return 0;
}
输出
Enter two integers: 12
23
Result: 12 < 23
如果…则嵌套
它可能包括一个if...else
另一个身体内部的语句if...else
语句。
示例4:如果…则嵌套
下面给出的该程序使用<
, >
和=
关联两个整数,类似于if...else
梯形图的示例。但是,我们将使用嵌套的if...else
语句来解决此问题。
#include
int main() {
int number1, number2;
printf("Enter two integers: ");
scanf("%d %d", &number1, &number2);
if (number1 >= number2) {
if (number1 == number2) {
printf("Result: %d = %d",number1,number2);
}
else {
printf("Result: %d > %d", number1, number2);
}
}
else {
printf("Result: %d < %d",number1, number2);
}
return 0;
}
如果if...else
语句的主体只有一个语句,则不需要使用方括号{}
。
例如,这段代码
if (a > b) {
print("Hello");
}
print("Hi");
相当于
if (a > b)
print("Hello");
print("Hi");