《C++游戏编程入门(第4版)》——2.4 使用带else子句的if语句序列

简介:

本节书摘来自异步社区出版社《C++游戏编程入门(第4版)》一书中的第2章,第2.4节,作者:【美】Michael Dawson(道森),更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.4 使用带else子句的if语句序列

C++游戏编程入门(第4版)
我们可以将带else子句的if语句连接起来,创建循序验证的表达式序列。第一个与验证为真的表达式关联的语句将被执行;否则,程序执行与最后的(可选)else子句关联的语句。下面给出这样一个序列的形式:

if (expression1)
   statement1;
else if (expression2)
   statement2;

…
else if (expressionN)
   statementN;
else
   statementN+1;```
如果expression1为true,则执行statement1,且跳过序列中的余下代码。否则,验证expression2,如果为true,则执行且跳过序列中的余下代码。计算机继续按顺序检查每个表达式(直到expressionN),且会执行与第一个真值表达式关联的语句。如果表达式都为假,那么将执行与最后的else子句关联的语句statementN+1。

###2.4.1 Score Rater 3.0程序简介
Score Rater 3.0程序同样评估用户输入的分数。但这次程序使用了带else子句的if语句序列。图2.4展示了程序运行结果。

从Cengage Learning网站(www.cengageptr.com/downloads)上可以下载到该程序的代码。程序位于Chapter 2文件夹中,文件名为score_rater3.cpp。

// Score Rater 3.0
// Demonstrates if else-if else suite

include

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;
}`


0ebb00ffdfc6af4d4619325ce0b99338958f9e79

图2.4 根据用户的分数,显示多条消息中的某一条

2.4.2 创建带else子句的if语句序列

我们已经两次见过该序列的开头部分,这次它的工作方式还是一样。如果score大于等于1000,则显示消息You scored 1000 or more. Impressive!,然后程序跳转到return语句。

   if (score >= 1000)
然而,如果该表达式为false,那么可以肯定score小于1000,程序计算序列的下一个表达式:

   else if (score >= 500)
如果score大于等于500,则显示消息You scored 500 or more. Nice!,然后程序跳转到return语句。然而,如果该表达式为false,那么可以肯定score小于500,程序计算序列的下一个表达式:

   else if (score >= 250)
如果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组合中不是必需的,但我们可以在序列中没有表达式为真的情况下使用它来执行代码。

相关文章
|
5月前
|
存储 安全 编译器
c++入门
c++作为面向对象的语言与c的简单区别:c语言作为面向过程的语言还是跟c++有很大的区别的,比如说一个简单的五子棋的实现对于c语言面向过程的设计思路是首先分析解决这个问题的步骤:(1)开始游戏(2)黑子先走(3)绘制画面(4)判断输赢(5)轮到白子(6)绘制画面(7)判断输赢(8)返回步骤(2) (9)输出最后结果。但对于c++就不一样了,在下五子棋的例子中,用面向对象的方法来解决的话,首先将整个五子棋游戏分为三个对象:(1)黑白双方,这两方的行为是一样的。(2)棋盘系统,负责绘制画面。
86 0
|
7月前
|
C++
C++中if语句的条件分支使用
总的来说,`if`语句是C++中非常重要的一种控制结构,它使得程序能够根据不同的条件执行不同的操作。通过合理地使用 `if`语句,我们可以使程序更加灵活和强大。
233 10
|
9月前
|
存储 缓存 C++
C++ 容器全面剖析:掌握 STL 的奥秘,从入门到高效编程
C++ 标准模板库(STL)提供了一组功能强大的容器类,用于存储和操作数据集合。不同的容器具有独特的特性和应用场景,因此选择合适的容器对于程序的性能和代码的可读性至关重要。对于刚接触 C++ 的开发者来说,了解这些容器的基础知识以及它们的特点是迈向高效编程的重要一步。本文将详细介绍 C++ 常用的容器,包括序列容器(`std::vector`、`std::array`、`std::list`、`std::deque`)、关联容器(`std::set`、`std::map`)和无序容器(`std::unordered_set`、`std::unordered_map`),全面解析它们的特点、用法
C++ 容器全面剖析:掌握 STL 的奥秘,从入门到高效编程
|
8月前
|
存储 分布式计算 编译器
C++入门基础2
本内容主要讲解C++中的引用、inline函数和nullptr。引用是变量的别名,与原变量共享内存,定义时需初始化且不可更改指向对象,适用于传参和返回值以提高效率;const引用可增强代码灵活性。Inline函数通过展开提高效率,但是否展开由编译器决定,不建议分离声明与定义。Nullptr用于指针赋空,取代C语言中的NULL。最后鼓励持续学习,精进技能,提升竞争力。
|
编译器 C++
C++入门12——详解多态1
C++入门12——详解多态1
147 2
C++入门12——详解多态1
|
C++
C++入门13——详解多态2
C++入门13——详解多态2
212 1
|
存储 安全 编译器
【C++打怪之路Lv1】-- 入门二级
【C++打怪之路Lv1】-- 入门二级
125 0
|
自然语言处理 编译器 C语言
【C++打怪之路Lv1】-- C++开篇(入门)
【C++打怪之路Lv1】-- C++开篇(入门)
167 0
|
分布式计算 Java 编译器
【C++入门(下)】—— 我与C++的不解之缘(二)
【C++入门(下)】—— 我与C++的不解之缘(二)