关于switch case语句的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于switch case语句的问题相关的知识,希望对你有一定的参考价值。
就是说如果一些内容很难归类,就是说用case归纳不全,比如1000-2000之内打9折,我总不可能case1111 case1112这样一条一条归类过去吧,这怎么设置啊?!
#include <iostream>using namespace std;
int main()
double Hour,PayPer,Pay;
do
cout<<"输入工作时数及单位时间基本工资:";
cin>>Hour>>PayPer;
bool f1=(Hour>40);
bool f2=(Hour>50);
switch(f1)
case 0:
Pay=Hour*PayPer;
cout<<"输出:"<<Pay<<endl;
break;
case 1:
switch(f2)
case 0:
Pay=40*PayPer+(Hour-40)*1.5*PayPer;
cout<<"输出:"<<Pay<<endl;
break;
case 1:
Pay=40*PayPer+10*1.5*PayPer+(Hour-50)*3*PayPer;
cout<<"输出:"<<Pay<<endl;
break;
break;
while(Hour!=0&&PayPer!=0);
return 0;
参考我的这个代码,题目在
http://zhidao.baidu.com/question/494793277752591964.html?oldq=1
满意记得采纳哦! 参考技术A 错误是:每个case
语句必须包含一个常量表达式做其变量,这个值不能在switch
语句的各级中出现
多次
意思是switch()
case(a);
case(b);
a和b的值不能相等,15||-3||12结果为真(即为1)-15||3||-12结果为真(即为1),两个1重复了,所以报错。建议改为
switch
(b)
case
(15):
cout<<"
The
winner
is
player1!";
break;
case
(-3):
cout<<"
The
winner
is
player1!";
break;
case
(12):
cout<<"
The
winner
is
player1!";
break;
case
(-15):
cout<<"The
winner
is
player2!";
break;
case
(3):
cout<<"The
winner
is
player2!";
break;
case
(-12):
cout<<"The
winner
is
player2!";
break;
default:
cout<<"Both
of
you
are
winners!";
参考技术B 确实不行。编译器报错(case label does not reduce to an integer constant)
如果硬要用switch-case,只能另外设定一个变量b, 当a在[1000,2000]区间里面的时候赋值b=1;
if(a<=2000 && a>=1000)b=1;
switch(b)
case 1: p=p*0.9;
case 2: ............;
.........
.........本回答被提问者采纳 参考技术C int n;
float price;
if (1000<price&&price<2000) n=4;
这种方式来设置 参考技术D case 1000 ... 2000 : 解决
switch case的用法
参考技术Aswitchcase的用法如下:
1、Switch用在编程中,如C语言中它经常跟Case一起使用,是一个判断选择代码。其功能就是控制流程流转的。直线翻译:switch语句,即“切换”语句;case即“情况”。
2、switch语句一行接一行地执行(实际上是语句接语句)。开始时没有代码被执行。仅当一个case语句中的值和switch表达式的值匹配时php才开始执行语句,直到switch的程序段结束或者遇到第一个break语句为止。如果不在case的语句段最后写上break的话,php将继续执行下一个case中的语句段。
3、在switch语句中条件只求值一次并用来和每个case语句比较。在elseif语句中条件会再次求值。如果条件比一个简单的比较要复杂得多或者在一个很多次的循环中,那么用switch语句可能会快一些。
4、switch语句执行时会从上到下根据括号中表达式的值作比较,当某个case语句中的表达式与此值相同时,就执行这个case语句或语句序列,直到遇到break为止。
扩展资料:
在C#中,switch语句的控制表达式只能是某个整形(int,char,long等)或string。其他任何类型(包括float和double类型)只能用if语句。
每个constantExpression值都必须唯一,使controllingExpression只能与它们中的一个匹配。如果controllingExpression的值和任何controllingExpression的值都不匹配,也没有default标签,程序就从switch的结束大括号之后的第一个语句继续执行。
参考资料来源:百度百科-switch
以上是关于关于switch case语句的问题的主要内容,如果未能解决你的问题,请参考以下文章