作者 | 梁唐
大家好,我是梁唐。
这是EasyC++系列的第23篇,简单聊聊if语句。
我们可以使用if
语句来进行判断是否需要执行某一段逻辑。if
有两种形式,一种是单纯的判断if
语句,另外一种是加上否则条件的if else
语句。
首先来看看第一种,单纯的if
语句,它用来执行单独的判断。
它理解成自然语言就是:如果某一种情况发生,则执行……if
语句之后跟的是一个bool
型的判断条件,当为ture
时执行语句块,否则不执行。
if (test-condition) {
// do something
}
test-condition
可以接任何表达式,只要它的结果是bool
型,甚至不是bool
也依然可以,C++会进行强制转化:
if (1) {
// do something
}
不过由于涉及强制转化还是需要小心,可能会有超出预期的结果出现,所以最好不要依赖类型转换,写清楚判断条件。
if-else
语句和纯if
语句几乎完全一样,只不过多了一个else
关键字,它表示否则。也就是当条件不成立时执行的内容。
if (3 > 5) {
cout << "it's wrong" << endl;
}else {
cout << "else works" << endl;
}
由于3 > 5
不成立,所以我们不会执行if
语句之后的代码块,并且由于我们使用了else
关键字,所以会执行else
之后的内容。
并且if-else
语句可以嵌套,只要我们愿意几乎可以无限嵌套下去。都市传说某些游戏当中的逻辑由于过于复杂,嵌套了上万个if-else
语句……
if (condition1) {
// todo
}else if (condition2) {
// todo
}else {
// todo
}
需要注意当多个if-else
语句嵌套时,编译器会从上到下依次轮询,它的判断是有顺序的。如果多个条件同时为true
,只会执行最上方的代码块。