引子
就是来讲一讲if语句的进化版本,所以没有主标题了,应该不会太无聊吧?
如果你还不了解if语句,就回到上一期药水是如何炼成的——判断循环语句(一)看看吧。
所以你可以进入正文了,这里没别的东西了。
目录
1.if-else——if的进化版本
上一期我们已经讲过了什么是if语句以及它是如何帮助你完成判断的,但是它并不是一个完整的分支语句。因为它只会在布尔表达式为真(即1,或true)时才能执行程序。有时候,它要执行分支判断任务,要依据不同的情况选择不同的语句段执行,啊呀呀,这可就难办了。这时候,if语句就会进行升级进化,变成if-else语句。有什么用呢?他可以分别执行布尔表达式分别为真和假时的语句块(我们之前也经常接触它,不是吗(如果你没看过之前的文章,请忽略这句话))。
1.1 你如何使用if-else?
我们都知道,if语句的基本格式是这样的:
if (布尔表达式)
语句(块)或表达式;
或者是这样:
if (布尔表达式) 语句或表达式;
注意,如果使用这个格式,那么你在if里将使用不了语句块,这不是我们推荐的格式(当然,如果你只要放上一个语句,为了更简便,我们也是推荐使用这种格式的
那么,它升级之后,就变成了这样:
if (布尔表达式)
语句(块)或表达式;
else
语句(块)或表达式;
你也可以这样表述:
if (布尔表达式) 语句或表达式;
else 语句或表达式;
注意,如果使用这个格式,那么你在if里将使用不了语句块,这不是我们推荐的格式(当然,如果你只要放上一个语句,为了更简便,我们也是推荐使用这种格式的(别问我为什么这段话和上面的一模一样,我可绝对没用复制粘贴)
于是,它的工作原理也改变了。
如果布尔表达式的值为真(即1,或true),就执行if和else之间的那一部分语句或表达式,如果布尔表达式的值为假(即0,或false),就执行else里面的语句。(其实,粗略的来讲就是如果,那么,否则的关系)提醒你,如果你想执行多条语句,记得用花括号把语句都扩成语句块吧(这里也包括那些表达式)。分号也是必不可少的。
啊哈,忘记告诉你了,如果你是从python语言过来的,一定要记住了:c++里面没有elif!没有elif!没有elif!(重要的事情说三遍)如果你怕自己记不住,那么,每天起床大喊一声:旺旺!
c++里面没有elif!没有elif!没有elif!
(哎呀,真的很洗脑,作者已经被洗了,差点把if-else写成了elif)
所以我们是不是可以先来体验一下if-else语句?把上一期的题目改一下:
输入两个整数,在输入两数相加的结果,输出这个结果是否正确,正确输出“正确”,否则不输出输出“错误”。就像这样:
输入:12 23 35
输出:正确
输入:1 1 3
输出:错误
因为这个题目上期已经讲过了(什么?你没看过上期?回到引子看看。什么?你不想看?),所以我们直接跳过了阿巴阿巴叽里呱啦的一大堆步骤跳到了这一步:
#include <iostream>
using namespace std;
int main(){
int a,b,sum;
cin >> a >> b >> sum;
if ((a + b) == sum) cout << "正确" << endl;
然后就是给if语句升级了!
#include <iostream>
using namespace std;
int main(){
int a,b,sum;
cin >> a >> b >> sum;
if ((a + b) == sum) cout << "正确" << endl;
else cout << "错误" << endl;
当当当当,再来个漂亮的收尾:
#include <iostream>
using namespace std;
int main(){
int a,b,sum;
cin >> a >> b >> sum;
if ((a + b) == sum) cout << "正确" << endl;
else cout << "错误" << endl;
return 0;
}
好了,快去试试吧!啊对了,你真的有思考么?不会是,全依靠我的代码吧?!
2.因为这篇文章貌似太短了,所以来凑凑字数讲讲重点
2.1 重点注意事项——if-else使用说明书
- 如果你要在if和else之间使用多条语句的话,千万别忘了用花括号把他们括起来,否则,你的程序运行结果将会是——[Errow]'else' without a previous 'if'(就是报错:else没有if这个玩意儿和他搭配。要知道,else是最爱if的了,见不到if它会伤心的,一伤心就不让你的程序运行了,所以千万别忘了用花括号把他们括起来)
- 里面的每一条语句都必须加分号,否则编译环境会告诉你缺失了分号
- 然后就是,他只能分支两个,不过你可以通过分支嵌套解决问题,就是会很麻烦。不过还是有解决方法的,下期在讲(绝对不是作者的问题)
- 没有elif这个玩意儿!真的没有!如果你在程序中使用elif只会获得一堆报错
- 不要在你的程序中频繁过度地使用if-else,因为有些问题if就能解决
- 然后,
我就凑不了字数了就这样吧
尾声
事实上,我本来不想写尾声的……
if-else是个好东西,以后的学习中你会经常用到它,所以千万不要忘记了这个知识点,太好用了!
水水水水水水水水