C语言中"a"为什么不属于字符型常量呢?有高手为我详细讲解一下switch语句的用法吗?

谢谢了各位高手!我是初等学C语言并且想把学好

第1个回答  2011-11-07
#include<stdio.h>
int main()
{
int a;
printf("请输入一个数:");
scanf("%d", &a);

switch(a)
{
case 1:
{
printf("你输入的是1!");
break;
}
case 2:
{
printf("你输入的是2!");
break;
}
case 3:
{
printf("你输入的是3!");
}
case 4:
{
printf("你输入的是4!");
}
default:
{
printf("你输入的不是1-4!!");
}
}
}

switch是按照顺序从上往下执行的语句:先是你给a付一个值:
如果你输入1,程序会从case1开始配对,如果a是1,则执行case1里面的命令,顺序执行下来,输出‘你输入的是1!’,然后遇到break把switch语句终止,该程序结束;
如果你输入2,程序会从case1开始配对,如果a是1,则执行case1里面的命令,顺序执行下来,但是a等于2,所以不执行case 1:就不看case 1:里面的内容了,然后去配对case 2:发现a=2,输出‘你输入的是2!’,然后遇到break把switch语句终止,该程序结束;
如果你输入3,程序会从case1开始配对,如果a是1,则执行case1里面的命令,顺序执行下来,
但是a等于3,所以不执行case 1,就不看case 1里面的内容了,然后去配对case 2:a也不等于2所以不执行case 2,就不看case 2里面的内容了,然后遇到case3,因为a=3,所以输出‘你输入的是3!’,但是没有break,语句,所以顺序执行下来,不管a会不会等于4,都将执行‘你输入的是4!’,还将执行‘你输入的是不是1-4!!',因为没有break语句去终止该指令

以此类推,如果输入4,将输出‘你输入的是4!’‘你输入的是不是1-4!!’,两条语句,
如果你输入的是1-4的以为的数值,那将输出‘你输入的是不是1-4!!’,这也就是default的用法了。
懂了吗?
第2个回答  2011-11-07
‘a'是字符常量
“a" == char[2] = {'a',0}

int a=1;
switch (a){
case 1:
printf("a is one");
break;
case 2:
printf("a is two");
break;
case else:
printf("a is more than two");
break;
}

其中最后一个break;( case else:下面那个)可以不加
如果把break全去掉,就会输出a is onea is twoa is more than two
因为程序会从 case (相应的值): 处开始执行,一直到switch结束,加break防止它执行到下一个case内本回答被提问者采纳
第3个回答  2011-11-07
用双引号的是字符串
相似回答