switch语句怎么用啊 具体啊!

switch语句怎么用啊 具体啊!,第1张

执行过程:

先计算并获得switch后面小括号里的表达式或变量值,然后将计算结果顺序与每个case后的常量比较。

当二者相等时,执行个case块中的代码,当遇到break时,就跳出switch选择结构,执行switch选择结构之后的代码。

如果任何一个case之后的常量与switch后的小括号中的值相等,则执行switch尾部的default块中代码。

代码如下:

#include "pchh"

#include <iostream>

#include <functional>

#include <map>

#include <string>

using namespace std;

int add(int i, int j)

{

return i + j;

}

// 使用函数调用运算符

struct divide

{

int operator()(int i, int j)

{

return i / j;

}

};

auto mod = [](int i, int j) {return i % j; };

map<string, function<int(int, int)>> binops =

{

  {"+", add},                                  // 使用函数指针

  {"-", minus<int>()},                         // 使用标准库函数对象

  {"", [](int i, int j) {return i j; }},    // 使用未命名的lambda表达式

  {"/", divide()},                             // 使用函数调用运算符

  {"%", mod}                                   // 命名了的lambda表达式

};

int main()

{

int num1, num2;

string s;

while (cin >> num1)

{

cin >> s >> num2;

cout << num1 << s << num2 << "=" << binops[s](num1, num2) << endl;

}

return 0;

}

扩展资料

Switch用在编程中,如C语言中它经常跟Case一起使用,是一个判断选择代码。其功能就是控制流程流转的。

直线翻译:switch语句,即“切换”语句;case即“情况”。

switch语句的语法如下(switch,case,break和default是关键字):

switch ( 变量表达式 )

{

case 常量1 :语句;break;

case 常量2 :语句;break;

case 常量3 :语句;break;

case 常量n:语句;break;

default :语句;break;

}

当变量表达式所表达的量与其中一个case语句中的常量相符时,就执行此case语句后面的语句,并依次下去执行后面所有case语句中的语句,除非遇到break;语句跳出switch语句为止。如果常量表达式的量与所有case语句的常量都不相符,就执行default语句中的语句。

switch (x/1000)
{
case 0:
cout << x << endl;
break;
case 1:
cout << x 09 << endl;
break;
}
说明:
switch语句的执行
1,对switch中的控制表达式进行求值。这里是对x/1000求值,如果0<=x<1000,求值结果为0,如果1000<=x<2000,结果为1
2,根据控制表达式的求值结果,跳转到相应的case入口,向后执行。注意是向后执行到整个switch语句之外,而不是只执行这一个case中包括的语句。通常只需要执行一个case语句,这需要通过goto,return,break,continue等语句来转移到switch之外。这里用的是break语句,如果把第一个break去掉,而的范围又在0-1000之间,这时不但会输出x,还会执行下一个case语句,输出 09x。
3,如果控制表达式的求值结果不等于任何的case入口,则会转移到default语句(如果有的话,没有就结束了)。比如这里还可以加入一个default语句来处理x<0或x>2000的情况
default:
cout << "你输入的数据不合法 " << endl;
break;
注意,default,不一定要放在所有的case语句之后,也可以放中间或开始的,但通常都放最后,比较符合习惯,所以如果放最后break可以省略。同理上面程序中的第二个break可以省略,但是这不是一个好的编程习惯,假如你在以后要在程序中加入一个 case 2的话,就很可能会把break可忘了。
其实default可以看成一个特殊的case语句,它的用法和case是一样,只是它能匹配所有case入口之外的其余情况。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13215704.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-21
下一篇 2023-06-21

发表评论

登录后才能评论

评论列表(0条)

保存