当前课程知识点:C/C++:从基础语法到优化策略 > Final Exam > Final exam > 3.7 switch statement
返回《C/C++:从基础语法到优化策略》慕课在线视频课程列表
我们再来说一说switch语句
switch语句的话 他是告诉计算机来选
哪一段代码去执行的 来执行
那么它的语法是这个样子 switch后面跟着一个表达式
首先这个表达式的值必须是整数
然后根据这个表达式的不同的值
然后如果它的值是1 label 1 就是这个值是 1 那就执行这段代码
如果是 2 就执行这段 严格来讲 它其实是这样的
如果是这个值 他就先测试一下 如果满足这个条件
那就执行statements这个以及往下执行
除非碰到break
如果这个不满足 那就看第二个
如果第二个满足的话 那就会从第二个开始往下执行这些statement
那如果不满足 就继续再往下找
最后都没有的话 那就是执行default指定的这个命令
如果没有default那就什么都不做就退出 退出了
所以这里面要特别注意的是
我们一般用switch的时候一定要用break
当然也不是说一定要 但是基本上都要
但break的作用不要弄错
我们来看这个例子 ok
在这个例子里面 我们用户输入一个choice
从标准输入输入 这是一个整数
然后如果它不等于五这个循环就不停的进行
然后每进行一次 就showmenu显示菜单并又再读一个数值
就是说他让我们不停的去输入
如果输入一那就说 就打印出来 here is alarm
如果输入二那就report 大家看 这边都后面都跟着break
如果三 那就是The boss was in all day
四的话 comfort 就调这个函数 然后break
如果前面这些都不是 就default就会输出That`s not a choice
我们来看这个代码 看这个代码 我们去运行一下
好 我们运行他会
他说please enter 1, 2, 3, 4, or 5 那么
这里面是通过这个showmenu()打印出来的
前面应该显示一个showmenu() showmenu是什么 就是这
他啥都不做 他就打印了一段话给我们看
他打印一段话给我们看
然后那我们现在执行了程序 执行了这一步了 我们做一个选择 选几呢 选择一
选个一如果一回车1≠5然后就会进入switch 我回车
好一的话 他立刻就打印了这句话 Here is a alarm
那就是一那就cout< 打印之后呢 然后break break很重要 break之后 然后就跳出来执行showmenu() showmenu() 然后就是下面打印出这一段 才来这 然后再等我们再输入 现在其实程序已经运行到这了 那我们再输个什么呢 输个二 输个二 输个二的话 刚才做什么 他说 It`s been an excellent week for business Sales are up 120%. Expenses are down 35% 那这个就是一个report 打印出来的report在干嘛 我们看看函数report就是打这句话的 啥也没做 然后又把menu打印了一遍 所以说就这样去执行 如果我们输入一个值 输个八他会说 That`s not a choice 这里面需要注意的是 如果我把这些break都去掉了 都去掉了那会怎么样 那会怎么样 我都去掉之后或者说我把这个简单一点 一就说Pressed 1. 这样这样 这个地方 2 3 4 pressed unknow 好了 假如是这样的话 我们来看 他会怎么样 我们这个程序五 quit 那退出 重新编译一下 然后运行ok 他让我们去输12345如果我们输给 输个九 他会说Pressed unknow 如果输个五就退出了 我们先输个四 输个四 不对呀 我输了四来看Pressed 4 Pressed unknow. 他把这两个都打印出来了 那我们再输个三看看 输个三的话 我们把这往上拉一下 输个三的话 那他就34 unknow 都打出来了 输个二呢 哦哦 我刚才输入了
-Quiz 1
-Quiz 2
-3.3 Relational expressions (> < ==)
-3.5 Branching statements (if else)
-3.8 break and continue statements
-Quiz 3
-4.4 Structures, Unions and Enumerations
-Quiz 4
-5.3 Allocate memory: C++ style
-Quiz 5
-6.3 Recursion and pointer to functions
-Quiz 6
-Quiz 7
-8.1 C/C++ with ARM development board
-Quiz 8
-9.2 Constructors and destructors
-Quiz 9
-10.1 Operators in cv::Mat in OpenCV
-10.4 Automatic conversions and type casts for classes
-Quiz 10
-11.1 Dynamic memory and classes
-11.2 New and improved String class
-11.3 Using pointers to objects
-Quiz 11
-12.2 Static and dynamic binding
-12.3 Access control: protected
-12.4 Inheritance and dynamic memory allocation
-Quiz 12
-13.1 Constructor and assignment
-13.2 Classes with object members
-Quiz 13
-14.1 CNN for image classification
-Quiz 14
-15.3 RTTI and type cast operators
-Quiz 15
-Final exam