C语言基础:if语句
2018-03-12 10:44
232 查看
一、if语句 在操作符章节中我们学习过问号表达式,也就是当某一个条件表达式是真时,问号表达式的结果为冒号前的结果,当条件表达式是假时,问号表达式的结果为冒号后的结果。这里我们可以分析一下,问号表达式其实是一个条件判断功能表达式,也就是说:如果条件表达式的值为真: 那么结果为A;否则: 那么结果为B。 其实这是一个我们在生活常常需要处理的一种情形,如果……那么……否则……那么……在C语言中有另外一个条件分支语句来处理这一类问题,我们先来看看if else语句: if (conditional expression)
{
//do something
}
else
{
//do something else
}
if后面的小括号中需要写入一个条件表达式,if语句会根据这个条件表达式结果的真假,让程序产生不同的结果,也就是程序分支。具体来说,就是当条件表达式的值是真时,程序执行if下面大括号中的语句,而当条件表达式的值是假时,程序执行else下面大括号中的语句。也就是说,if和else后面的程序区块中只有一个会被执行,要么是if后面大括号中的语句,要么是else后面大括号中的语句。所以程序在执行到if语句时就产生了逻辑分支。 下面我们来看一个例子说明if else语句的功能,二月份一共有28天,但当闰年时,二月份就有29天,闰年的计算公式为:能被4整除,不能被100整除的年是闰年,能被400整除的看也是闰年。所以我们可以编写一个用于计算二月份天数的程序: int year = 2016;
int daysOfFebruary;
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
{
daysOfFebruary = 29;
}
else
{
daysOfFebruary = 28;
}
printf("%d\n", daysOfFebruary);
上面程序运行的结果为29,因为2016年是闰年;如果我们将变量year修改为2017,那么程序的运行结果则为28;如果我们将变量year修改为2000,那么程序的运行结果为29,因为2000年是闰年。 二、else if语句 有时候,我们需要将条件划分为多个不同的情况,往往是需要多种情况的分支,所以一个if else语句是不能满足我们的需要的。例如:一个学生期末考试的成绩单在100分为A,90分以上时为B,80分以上为C,70分以上为D,60分以上为D,而小于60为F。如果要用if else语句来写需要嵌套很多层if语句: int score = 78;
if (score == 100)
{
printf("A\n");
}
else
{
if (score >= 90)
{
printf("B\n");
}
else
{
if (score >= 80)
{
printf("C\n");
}
else
{
if (score >= 70)
{
printf("D\n");
}
else
{
if (score >= 60)
{
printf("E\n");
}
else
{
printf("F\n");
}
}
}
}
}
这样写的程序结果是对的,但看起来并不是很美观,C语言中提供了另外一种语句叫作else if来解决这一类问题: int score = 78;
if (score == 100)
{
printf("A\n");
}
else if (score >= 90)
{
printf("B\n");
}
else if (score >= 80)
{
printf("C\n");
}
else if (score >= 70)
{
printf("D\n");
}
else if (score >= 60)
{
printf("E\n");
}
else
{
printf("F\n");
}
else if语句的作用就是在if判断条件表达式为假之后可以再进行下一步的条件判断,而不需要在else分支里面再写入一个if else判断,这样代码看起来就美观很多,逻辑清晰。 当if else后面的大括号中只有一条语句时,大括号可以省略。但从程序可读性和可扩展性上讲并不推荐省略这些大括号。另外,if else 和 else if语句中大括号里面均可以再嵌套其它的语句,例如嵌套其它的if else语句,或嵌套while循环语句皆可。这是C语言通用的语法,大括号中可以嵌套任意的合法语句,并支持多层级嵌套。欢迎关注公众号:编程外星人
{
//do something
}
else
{
//do something else
}
if后面的小括号中需要写入一个条件表达式,if语句会根据这个条件表达式结果的真假,让程序产生不同的结果,也就是程序分支。具体来说,就是当条件表达式的值是真时,程序执行if下面大括号中的语句,而当条件表达式的值是假时,程序执行else下面大括号中的语句。也就是说,if和else后面的程序区块中只有一个会被执行,要么是if后面大括号中的语句,要么是else后面大括号中的语句。所以程序在执行到if语句时就产生了逻辑分支。 下面我们来看一个例子说明if else语句的功能,二月份一共有28天,但当闰年时,二月份就有29天,闰年的计算公式为:能被4整除,不能被100整除的年是闰年,能被400整除的看也是闰年。所以我们可以编写一个用于计算二月份天数的程序: int year = 2016;
int daysOfFebruary;
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
{
daysOfFebruary = 29;
}
else
{
daysOfFebruary = 28;
}
printf("%d\n", daysOfFebruary);
上面程序运行的结果为29,因为2016年是闰年;如果我们将变量year修改为2017,那么程序的运行结果则为28;如果我们将变量year修改为2000,那么程序的运行结果为29,因为2000年是闰年。 二、else if语句 有时候,我们需要将条件划分为多个不同的情况,往往是需要多种情况的分支,所以一个if else语句是不能满足我们的需要的。例如:一个学生期末考试的成绩单在100分为A,90分以上时为B,80分以上为C,70分以上为D,60分以上为D,而小于60为F。如果要用if else语句来写需要嵌套很多层if语句: int score = 78;
if (score == 100)
{
printf("A\n");
}
else
{
if (score >= 90)
{
printf("B\n");
}
else
{
if (score >= 80)
{
printf("C\n");
}
else
{
if (score >= 70)
{
printf("D\n");
}
else
{
if (score >= 60)
{
printf("E\n");
}
else
{
printf("F\n");
}
}
}
}
}
这样写的程序结果是对的,但看起来并不是很美观,C语言中提供了另外一种语句叫作else if来解决这一类问题: int score = 78;
if (score == 100)
{
printf("A\n");
}
else if (score >= 90)
{
printf("B\n");
}
else if (score >= 80)
{
printf("C\n");
}
else if (score >= 70)
{
printf("D\n");
}
else if (score >= 60)
{
printf("E\n");
}
else
{
printf("F\n");
}
else if语句的作用就是在if判断条件表达式为假之后可以再进行下一步的条件判断,而不需要在else分支里面再写入一个if else判断,这样代码看起来就美观很多,逻辑清晰。 当if else后面的大括号中只有一条语句时,大括号可以省略。但从程序可读性和可扩展性上讲并不推荐省略这些大括号。另外,if else 和 else if语句中大括号里面均可以再嵌套其它的语句,例如嵌套其它的if else语句,或嵌套while循环语句皆可。这是C语言通用的语法,大括号中可以嵌套任意的合法语句,并支持多层级嵌套。欢迎关注公众号:编程外星人
相关文章推荐
- 【C语言基础】有趣的猜数字游戏。(while循环,if语句,switch语句)
- 【C语言基础】一直接收键盘字符 (while 循环,if条件语句)
- Python语言基础--1(if‘、while条件语句)
- 有意思的python语言基础,变量,占位符,运算符,if语句(04)
- C语言基础---BOOL 类型,运算符,if 语句,switch语句
- Java语言基础组成(运算符,关键字,语句if,whle,for)
- Java语言基础(四) : 选择结构之 if 语句
- 【C语言基础】写代码可以在整型有序数组中查找想要的数字(while循环,if条件语句)
- C语言基础 if语句
- C语言基础-----分支语句if esle switch case
- 【C语言基础】“输入三次密码”的操作。(for循环,if语句)
- ios入门攻略 04篇 C语言基础【分支结构之if语句】
- Java基础第一阶段——03_Java语言基础_运算符&if&while&switch&for语句
- GO语言基础-if语句特性
- Java笔记之语言基础_使用if语句时要注意的问题
- Java 语言基础之语句
- python基础选择结构if语句判断三角形
- 蓝鸥Unity开发基础——If 语句学习笔记
- C#语言基础语句
- (基础二)java if语句学习