《C++游戏编程入门(第4版)》——2.5 使用switch语句

2.5 使用switch语句

C++游戏编程入门(第4版)
switch语句可以用来在代码中创建多个分支点。下面给出switch语句的一般形式:

   switch (choice)
   {
    case value1:
         statement1;
         break;
    case value2:
         statement2;
         break;
    case value3:
        statement3;
        break;
           .
           .
           .
     case valueN:
         statementN;
         break;
      default:
          statementN+1;
   }```
该语句将choice与其可能的值value1、value2和vabe3按顺序进行对比。如果choice与某个值相等,则程序执行相应的statement。当程序运行到break语句时,会退出switch结构。如果choice与任意值都不匹配,则程序执行与可选的default关联的语句。

break和default的使用是可选的。然而,如果去掉break,程序将继续执行余下的语句,直到遇到break或default,或者switch语句结束。我们通常都在每个case结尾加上break语句。

提示
 尽管default条件不是必需的,但最好使用它来处理所有表达式都不为真的情况。
下面给出例子巩固switch概念。假定choice等于value2。程序首先比较choice与value1。因为它们不相等,程序继续执行。然后,程序会比较choice与value2。因为它们相等,程序将执行statement2。接着,程序遇到break语句,退出switch结构。

陷阱
 switch语句只能用来比较int型(或其他可以当作int型处理的值,如char型或枚举数)。switch语句不能用于其他任何类型。
###2.5.1 Menu Chooser 程序简介
Menu Chooser程序向用户展示了一个菜单。该菜单列出了3个难度级别,并要求用户做出选择。如果用户输入的数字对应所列选项,则显示确认选择的消息。如果用户做出其他选择,则程序提示选择不合法。图2.5展示了正在运行的程序。

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

.![image](https://yqfile.alicdn.com/91d6281a977778c30f6920acd046c2ac1fdf6d4b.png)

图2.5 图中显示选择了简单级别

// Menu Chooser
// Demonstrates the switch statement

include

using namespace std;

int main()
{
   cout << "Difficulty Levelsnn";
   cout << "1 - Easyn";
   cout << "2 - Normaln";
   cout << "3 - Hardnn";

   int choice;
   cout << "Choice: ";
   cin >> choice;

   switch (choice)
   {
     case 1:
         cout << "You picked Easy.n";
         break;
     case 2:
         cout << "You picked Normal.n";
         break;
     case 3:
         cout << "You picked Hard.n";
         break;
     default:
         cout << "You made an illegal choice.n";
   }
   return 0;
}`

2.5.2 创建多路分支

程序中的switch语句创建了4个分支点。如果用户输入1,则程序执行与case 1关联的代码,显示You picked Easy.。如果用户输入2,则程序执行与case 2关联的代码,并显示You picked Normal.。如果用户输入3,则程序执行与case 3关联的代码,并显示You picked Hard.。如果用户输入其他任意值,则进入default,并显示You made an illegal choice.。

陷阱
 我们几乎总是会在每种情况结尾使用break语句。千万别忘记这一点,否则代码将做出意想不到的事情。

时间: 2024-10-22 15:02:50

《C++游戏编程入门(第4版)》——2.5 使用switch语句的相关文章

《C++游戏编程入门(第4版)》——1.5 声明和初始化变量

1.5 声明和初始化变量 C++游戏编程入门(第4版) 变量代表了计算机内存的某一部分,该部分被保留下来用于存储.检索和操作数据. 如果需要记录玩家的得分,则可以为它专门创建一个变量.这样一来,就可以读取并显示玩家得分.如果玩家将空中的外星敌人击毙,还可以将得分更新. 1.5.1 Game Stats程序简介 Game Stats程序显示在太空射击游戏中需要记录的诸如玩家得分.击毁敌人数目以及玩家防护盾是否开启等信息.该程序使用了一组变量来完成这些任务.程序如图1.5所示. 图1.5 游戏中每条

《C++游戏编程入门(第4版)》——2.14 问与答

2.14 问与答 C++游戏编程入门(第4版) 问:必须使用关键字true和false吗? 答:不一定,但最好这样做.在有关键字true和false之前,程序员经常使用1代表true,0代表false.然而,既然有了true和false,最好使用它们而不是过时的1和0. 问:可以将true或false以外的值赋给bool型变量吗? 答:可以.可以将表达式赋给bool型变量,变量将存储表达式的真或假. 问:可以使用switch语句对某个非整数值进行验证吗? 答:不可以.switch只能用于可以解释

《C++游戏编程入门(第4版)》——1.8 Lost Fortune简介

1.8 Lost Fortune简介 C++游戏编程入门(第4版) 本章最后一个项目Lost Fortune是一个拟人化的探险游戏.在游戏中,玩家输入一些信息,计算机把这些信息扩展成一个探险故事.程序的运行示例如图1.9所示. 图1.9 故事由玩家提供的细节构成 这里不一次展示全部代码,而是每次给出一部分.从Cengage Learning网站(www.cengageptr.com/ downloads)上可以下载到该程序的代码.程序位于Chapter 1文件夹中,文件名为lost_fortun

《C++游戏编程入门(第4版)》——1.9 本章小结

1.9 本章小结 C++游戏编程入门(第4版) 本章介绍了以下概念: C++是编写一流游戏的主要编程语言. C++程序由一系列的C++语句组成. C++程序的基本生命周期包括构思.设计.源代码.目标文件和可执行文件. 编程错误包括3类:编译错误.链接错误和运行时错误. 函数是一组能完成某些任务并返回一个值的一组程序语句. 每个程序都必须包含main()函数,它是程序的运行起始点. include指令告诉预处理器在当前文件中包含另一个文件. 标准库是一些文件的集合.程序文件可以包含这些文件来实现像

《C++游戏编程入门(第4版)》——2.11 理解游戏主循环

2.11 理解游戏主循环 C++游戏编程入门(第4版) 游戏主循环是游戏中事件流的一般表示方式.事件的核心部分要重复执行,因此称之为循环.尽管不同游戏的主循环的实现不尽相同,但是几乎所有不同种类的游戏的基本结构是一样的.无论是简单的太空射击游戏,还是复杂的角色扮演游戏(Role-Playing Game, RPG),游戏通常由游戏主循环中相同的重复部分组成.游戏主循环如图2.13所示. 图2.13 游戏主循环描述了几乎适用于任何游戏的基本事件流 下面解释游戏主循环的各个部分: 初始化设置.这部分

《C++游戏编程入门(第4版)》——1.2 编写第一个C++程序

1.2 编写第一个C++程序 C++游戏编程入门(第4版)到此为止,我们已经介绍了足够多的理论知识.现在来实践编写第一个C++程序.麻雀虽小,五脏俱全.该程序同样演示了在控制台窗口中显示文本的方法. 1.2.1 Game Over程序简介 程序员在学习新语言时,编写的第一个程序便是经典的Hello World程序,在屏幕上显示Hello World.Game Over程序打破了这个传统,显示的是Game Over!.该程序的运行结果如图1.2所示. 图1.2 您的第一个C++程序显示的是计算机游

《C++游戏编程入门(第4版)》——1.7 使用常量

1.7 使用常量 C++游戏编程入门(第4版)常量 是经过命名的无法修改的值.如果程序中频繁地使用到不变化的值,常量就很有用.例如,在编写太空射击游戏时,每个在空中击毁的外星人都值150分,那么就可以定义一个名为ALIEN_POINTS的常量,其值为150.然后每次需要使用外星人的分数时,就可以使用ALIEN_POINTS而不是数字150. 常量有两大优势.首先,它让程序更加清晰易懂.一眼看到ALIEN_POINTS,就能知道它的意思.如果查看的代码中有150,我们也许并不知道它代表的含义.第二

《C++游戏编程入门(第4版)》导读

前言 C++游戏编程入门(第4版)好莱坞能带来最好视觉效果.声乐效果以及纯粹的兴奋,顶级的计算机游戏也完全可以与其媲美.但是游戏这种娱乐方式与其他方式不同,它们能让玩家一连好几个小时守在屏幕跟前.能让游戏如此与众不同并且引人入胜的原因在于交互性.在计算机游戏中,我们不是坐下来观看主人公如何与怪物搏斗,而是自己担任主角.实现这种交互性的关键在于编程.编程让外星生物.外星人进攻中队或整支敌人军队在不同情况下对玩家做出不同的反应.编程让游戏的故事情节能够以新的方式展开.实际上,作为编程的结果,游戏可能

《C++游戏编程入门(第4版)》——2.6 使用while循环

2.6 使用while循环 C++游戏编程入门(第4版)只要表达式的值为true,那么while循环就可以重复执行部分代码.下面给出while循环的一般形式: while (expression) statement;``` 如果expression的值为false,则程序转到循环后面的语句.如果为true,则执行statement,然后再回过头来验证expression.整个过程一直重复到expression的值为false,然后循环结束. ###2.6.1 Play Again游戏简介 Pl

《C++游戏编程入门(第4版)》——2.7 使用do循环

2.7 使用do循环 C++游戏编程入门(第4版)像while循环一样,do循环也可以基于表达式重复执行部分代码.区别在于,do循环在每次循环迭代之后验证表达式.这意味着循环体总是至少要执行一次.下面给出do循环的一般形式: do statement; while (expression)``` 程序执行statement,且只要验证为true,循环就重复进行.一旦expression验证为false,则循环终止. ###2.7.1 Play Again 2.0程序简介 Play Again 2