关于c语言switch语句

来源:百度知道 编辑:UC知道 时间:2024/09/27 15:48:12
我买的教材上面写的是 switch语句后面的括号里面取值必须是整型或字符型。
什么意思啊 是在括号里面必须写入整型数据还是可以写人实型系统取值的时候转化成整型??

是要求必须是整型的数据,在switch语句中编译系统(如VC++ 6.0)是不会自动将实型的数据转化成整型的。不过你可以自己将实型的数据转化成整型,如下语句:
#include <stdio.h>
void main()
{
float a;
a = 2.1;
switch((int)a)
{
case 1:printf("Current value is %f\n",a);break;
case 2:printf("Current value is %f\n",a);break;
case 3:printf("Current value is %f\n",a);break;
}
}
执行以上程序后将输出:
Current value is 2.100000

不过请注意你要是按以下语句来编写的话程序的输出与以上程序的输出的不同之处:
#include <stdio.h>
void main()
{
float a;
a = 2.1;
switch((int)a)
{
case 1:printf("Current value is %d\n",a);break;
case 2:printf("Current value is %d\n",a);break;
case 3:printf("Current value is %d\n",a);break;
}
}
执行以上程序后将输出:
Current value is -1073741824

“在括号里面必须写入整型数据还是可以写人实型系统取值的时候转化成整型”两种都行。