基本语法格式:
if(表达式)
{
语句
}
举例:输入整数,判断奇偶性
#include<stdio.h>
//判断整数的奇偶性
int main()
{
int input;
while (scanf("%d",&input))
{
if (input%2==1)
{
printf("%d为奇数", input);
}
if (input%2==0)
{
printf("%d为偶数", input);
}
}
return 0;
}
基本语法格式:
if (表达式)
{
语句1
}
else
{
语句2
}
说明:如果满足表达式条件(为真),则执行语句1,否则执行语句2。
举例:判断是否满十八岁
#include<stdio.h>
//判断是否满十八
int main()
{
int age;
while (scanf("%d", &age))
{
if (age >= 18)
{
printf("已成年\n");
}
else
{
printf("未成年\n");
}
}
return 0;
}
注:if和else默认控制一条语句,如果想要同时控制多条语句,则需要加上大括号将语句括起来
{ 语句 }
在if else语句中,else可以与另一个if语句连用,构成多重判断。
举例:输入一个整数,判断所输入的数是正整数、负整数或是0。
#include<stdio.h>
//判断输入的数字为正整数、负整数或是0
int main()
{
int input;
while (scanf("%d", &input))
{
if (input == 0)
{
printf("输入的数字为0\n");
}
else if (input > 0)
{
printf("输入的数字为正整数\n");
}
else if (input < 0)
{
printf("输入的数字为负整数\n");
}
}
return 0;
}
注:
悬空else问题
如果有多个if else语句,else语句总是和最近的if语句匹配
如下方代码块所示,最终不会输出结果。
#include<stdio.h>
//悬空else语句匹配
int main()
{
int a = 1;
int b = 2;
if (a == 0)//if_1
if (b == 2)//if_2
printf("b");
else//与if_2匹配,嵌套于if_1中
printf("null");
return 0;
}