永发信息网

switch语句怎么用

答案:4  悬赏:70  手机版
解决时间 2021-04-12 22:08
float items;
cin >> items;
switch (items) {
case 0.0: cout << "Radio"
case 1.0: cout << "Television"
case 1.5: cout << "Video Camera"
}
这个是错误的,除了没有分号还有几个错误。。改成这样就好了但是可能把提议改了
int items;
cin >> items;
switch (items)
{
case 1: cout << "Radio"<<endl;break;
case 2: cout << "Television"<<endl;break;
case 3: cout << "Video Camera"<<endl;break;
default :cout<<"error"<<endl;break;
}
其实我想问的是switch后和case后为什么不能是浮点型数或双精度数,只能用整型。。
最佳答案
switch语句的语法如下(switch,case和default是关键字):

switch ( 表达式)
{

  case 常量表达式1 :语句1;break;
  case 常量表达式2 :语句2;break;
……
  case 常量表达式n :语句n;break;
default:语句n+1;break;

}
说明:
break退出{ }
case后面只能跟一个值(加冒号:),而不能是一个表达式
switch(表达式) 后面没有;(分号)
{}前后没有;(分号)

switch语句规则
case标签必须是常量表达式(constant Expression)
  只能针对基本数据类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。
case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。

不要问为什么,C就这规定!我们只需要了解规则,学会应用即可!
猜想原因:浮点型数据不是准确的数据,在机器中只能表示出一个近似值,如:0.1 在机器中存的是0.09999612.... 也可能是0.09999723.... 根据精度不同,数据来源不同,其值是个不确定的数据,因此,不能用CASE来定位
全部回答
就是一个多路条件选择 从表达式值等于某个case语句后的值开始,它下方的所有语句都会一直运行,直到遇到一个break为止。随后,switch语句将结束,程序从switch结束大括号之后的第一个语句继续执行,并忽略其他case。 switch (表达式){ case 值1 : 语句1 break; case 值2 : 语句2 break; ... default : 语句n break; }
switch语句括号内的表达式可以是整型或字符型,c语言的语法规定,你可以去看看
第一种除了没有分号外错误就是没加break,这样比如输入0.0会把3个cout语句都执行一遍,严格的说这不是错误,因为是有这种用法的。switch语句括号内的表达式可以是整型或字符型,不能是float型。 如果你想输入像第一种那几个数可以把 items 乘2再强制转换成整形,case后分别写0、2、3
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
现在什么品牌的护肤品比较好
医疗保险定点单位2008年度工作总结
DNF 地下城
今年C罗在欧冠进了多少个任意球了?
单选题有人说,“蒸汽机是工业城市之母”,主
父母离婚协议上写着孩子归女方但是孩子不愿意
儿童人多力量大的谚语,表示人多力量大的谚语
钱柜食唱RTV地址在什么地方,想过去办事
求高中全部化学方程式默写版和答案(Word版)
命运真的只可承不可改变吗?
吧里会p图的亲是用什么办法抠原画人物的
判断题如图所示,梯形ABCD中,阴影三角形OAD
请问赤峰哪里有卖真空压缩袋的?
AVA点亮图标什么要求
诺基亚7610S的开机动画可以换吗?可以的话在
推荐资讯
烽火战国官大夫可以开几个分城?
结伙殴打他人经派处所私下调解未果私下逃逸后
微鲸和海信哪个好,微鲸电视和海信那个好?
得不到家人的支持句子,对家人失望的句子
从襄樊到江苏南通有无火车,是几点发车一天有
恺怎么读音是什么
虐杀原型中文版!
二哥山在哪里啊,我有事要去这个地方
吃什么零食减肥,冬天适合吃什么甜品 冬天适合
闭合电路的一部分导体在磁场中运动的方向如下
网上购物安全么?
诸侯OL游戏里武士的魔攻基础跟法术伤害有关系
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?