黑马程序员技术交流社区
标题:
switch 语句的输出
[打印本页]
作者:
hughwang90
时间:
2014-4-2 17:46
标题:
switch 语句的输出
本帖最后由 hughwang90 于 2014-4-2 21:47 编辑
main( )
{
float a=1.9;
switch(a)
{
case 0: printf("0000");
case 1: printf("1111");
case 2: printf("2222");
}
printf("%f",a);
}
请问这一个程序输出地结
果为什么会是
11122221.900000 ?
作者:
conpgy
时间:
2014-4-2 17:57
这样写是错的。switch(表达式)。表达式不能为float
作者:
agelessman
时间:
2014-4-2 18:06
main( )
{
float a=1.9;
switch(a)
{
case 0: printf("0000");
case 1: printf("1111");
case 2: printf("2222");
}
printf("%f",a);
}
switch里边没用break,就一直执行下去,最后的结果就是那个了
作者:
haohaoxuexi
时间:
2014-4-2 18:26
main( )
{
float a=1.9;
switch(a)
{
case 0: printf("0000");
case 1: printf("1111");
case 2: printf("2222");
}
printf("%f",a);
}
你这里边缺少break;语句,或者添加一个default语句
作者:
愿我能
时间:
2014-4-2 18:59
主要因为没break ,case1,case2,都执行了,
作者:
墨迹的可乐
时间:
2014-4-2 19:09
缺少break语句,case语句会一直执行下去,需要加上break语句;同时我是将楼主的代码运行了一遍,但是总是显示错误,不知道怎么输出那个结果的
错误提示:
01-switch1.c:5:5: error: statement requires expression of integer type
('float' invalid)
switch(a)
^ ~
1 error generated.
作者:
zjw66485542
时间:
2014-4-2 20:29
你看你定义的浮点型float 的变量a switch(变量) 这里面的变量不能够用float类型 ,如果用float类型会报错。
你可以把它换成char 或者int类型 修改下试一下
像楼上说的 如果缺少break case就会顺序执行下去,不跳出。
作者:
Jine
时间:
2014-4-2 21:11
float 是浮动小数点啊!,switch是需要整数输入,
a=1.9是小数,而且条件没有break来结束啊!
你的笔记本真是神啊,竟然可以编译成功,
还可以输出结果,大神膜拜你:dizzy:dizzy:dizzy:dizzy:dizzy:dizzy:
作者:
2014571245
时间:
2014-4-2 21:26
如果是顺序执行的话?为什么case 0;没有执行?而是从case1开始执行?
作者:
远人
时间:
2014-4-2 21:34
亲,你的这段代码漏洞百出。
1、main函数不完整,修改后
int main()
{
return 0;
}
2、浮点型数据写法。
1.>double型 double a = 1.3
2.>float型 float a = 1.3f (float型书写后面要加f的,double不加,这是double和float的区别)
3.缺少break;语句,和default语句
4.最后按照你的函数给你解释下结果为什么是11122221.900000,当然你这个程序要能运行的前提下
a被系统强制转化为int型执行,转化之后a=1,那么switch语句中
case 1: printf("1111");
case 2: printf("2222");
}
printf("%f",a);
这3句被执行,其中你没有分行符'\n',所以输出结果连在一起,同时%f默认的是保留6位小数。
作者:
王雪冬
时间:
2014-4-3 20:55
语法错了,缺少break。当满足一个条件时通常是需要跳出switch,而break就是干这个用的
作者:
曲佳奇
时间:
2014-4-3 20:58
好像switch中只能byte short char int 吧 还有每个case之后要有break啊
作者:
诺忔。初禾、
时间:
2014-4-3 21:35
每个case结束后确实break
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2