本节书摘来自异步社区出版社《c++游戏编程入门(第4版)》一书中的第2章,第2.4节,作者:【美】michael dawson(道森),更多章节内容可以访问云栖社区“异步社区”公众号查看。
c++游戏编程入门(第4版)
我们可以将带else子句的if语句连接起来,创建循序验证的表达式序列。第一个与验证为真的表达式关联的语句将被执行;否则,程序执行与最后的(可选)else子句关联的语句。下面给出这样一个序列的形式:
// score rater 3.0
// demonstrates if else-if else suite
using namespace std;
int main()
{
int score;
cout << "enter your score: ";
cin >> score;
if (score >= 1000)
{
cout << "you scored 1000 or more. impressive!n";
}
else if (score >= 500)
cout << "you scored 500 or more. nice.n";
else if (score >= 250)
cout << "you scored 250 or more. decent.n";
else
cout << "you scored less than 250. nothing to brag about.n";
return 0;
}<code>`</code>

图2.4 根据用户的分数,显示多条消息中的某一条
我们已经两次见过该序列的开头部分,这次它的工作方式还是一样。如果score大于等于1000,则显示消息you scored 1000 or more. impressive!,然后程序跳转到return语句。
<code>if (score >= 1000)</code>
然而,如果该表达式为false,那么可以肯定score小于1000,程序计算序列的下一个表达式:
<code>else if (score >= 500)</code>
如果score大于等于500,则显示消息you scored 500 or more. nice!,然后程序跳转到return语句。然而,如果该表达式为false,那么可以肯定score小于500,程序计算序列的下一个表达式:
<code> else if (score >= 250)</code>
如果score大于等于250,则显示消息you scored 250 or more. decent.,然后程序跳转到return语句。然而,如果该表达式为false,那么可以肯定score小于250,程序执行与最后的else子句关联的语句,显示消息you scored less than 250. nothing to brag about.。
提示
虽然最后的else子句在if else-if组合中不是必需的,但我们可以在序列中没有表达式为真的情况下使用它来执行代码。