摘要:if语句是C语言两大选择语句之一,常与else配合使用。
if
if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。C语言的if语句有三种基本形式。
1 if.......形式
基本形式:
if(表达式) 语句;
功能:如果表达式为真,就执行下面的语句;如果表达式为假,就不执行下面的语句。语句可以是单条语句,也可以是用花括号{}包括起来的复合语句。示例如下:
#include <stdio.h>
int main(void)
{
if (3>2)
{
printf("I Love You\n");
}
return 0;
}
运行结果:
I Love You
补充:只要 if 后面的表达式成立或非零(比如:1,2,3,a,b,c,(3>2)等),就执行其下的语句。
2 if……else形式
一般格式:
if(表达式)
语句1;
else
语句2;
功能:如果表达式的值为真,则执行语句1,否则执行语句2 。语句1和语句2可以是复合语句。示例如下:
# include <stdio.h>
int main(void)
{
int i, j;
printf("请输入两个数:"); //提示输入
scanf("%d %d", &i, &j); //注意取地址符&
if (i>j)
{
printf("i大于j\n");
}
else
{
printf("i小于j\n");
}
return 0;
}
运行结果:
请输入两个数:
43 56
i小于j
3 if……else……if形式
一般形式为:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;
…
else if(表达式m)
语句m;
else
语句n;
功能:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。示例如下:
#include <stdio.h>
int main(void)
{
char c;
printf("input a character: ");
c=getchar();
if(c<32)
printf("This is a control character\n");
else if(c>='0'&&c<='9')
printf("This is a digit\n");
else if(c>='A'&&c<='Z')
printf("This is a capital letter\n");
else if(c>='a'&&c<='z')
printf("This is a small letter\n");
else
printf("This is an other character\n");
return 0;
}
本例要求判别键盘输入字符的类别。可以根据输入字符的ASCII码来判别类型。由ASCII码表可知ASCII值小于32的为控制字符。在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母, 在“a”和“z”之间为小写字母,其余则为其它字符。这是一个多分支选择的问题,用if-else-if语句编程,判断输入字符ASCII码所在的范围,分别给出不同的输出。例如输入为“g”,输出显示它为小写字符。
4 扩展形式
if条件语句的形式是多种多样的。比如if嵌套、if……if类似的形式,但是都离不开上面介绍的三种基本形式。
其他补充:
- 在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。
- 在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用{}括起来组成一个复合语句。但要注意的是在}之后不能再加分号。
- 在三种形式的if语句中,在if关键字之后均为表达式。 该表达式通常是逻辑表达式或关系表达式,但也可以是其它表达式,如赋值表达式等,甚至也可以是一个变量。只要表达式的值为非0,即为“真”。
- if 可以不带 else ,但 else 不能单独出现,必须配合 if 一起出现。
参考链接
http://c.biancheng.net/cpp/html/38.html
https://zhidao.baidu.com/question/71105101.html