switch可以输出两个值吗?
我想输入(a,b)想看见输出Monday和Tuesday这样可行吗?#include <stdio.h>
void main()
{
char a,b;
printf("input integer number:\n");
scanf("%c,%c",&a,&b);
switch(a,b)
{
case 'a':printf("Monday\n");break;
case 'b':printf("Tuesday\n");break;
case 'c':printf("Wednesday\n");break;
case 'd':printf("Thursday\n");break;
case 'e':printf("Friday\n");break;
case 'f':printf("Saturday\n");break;
case 'g':printf("Sunday\n");break;
default :printf("Error!!!\n");
}
} 不行,逗号是个运算符,这种写法switch只判断b flamer 发表于 2019-8-22 16:24
不行,逗号是个运算符,这种写法switch只判断b
那为什么不只判断a呢 YLXASRX 发表于 2019-8-22 16:39
那为什么不只判断a呢
逗号运算符的结果就是最后的那个表达式,但是前面的语句都会执行,你这里b是在最后,b的结果就是整个表达式的结果 不能按你写的代码这样做,但可以把(a,b)重新给一个值,写个case ,要不就用个循环,每次取个值 RIXO 发表于 2019-8-22 17:56
不能按你写的代码这样做,但可以把(a,b)重新给一个值,写个case ,要不就用个循环,每次取个值
怎么使用循环呢?是用什么函数啊? flamer 发表于 2019-8-22 17:51
逗号运算符的结果就是最后的那个表达式,但是前面的语句都会执行,你这里b是在最后,b的结果就是整个表达 ...
这样子啊谢谢谢谢!! YLXASRX 发表于 2019-8-23 16:14
怎么使用循环呢?是用什么函数啊?
示例:
char a,b,c;
scanf("%c%c",&a,&b);
while(a !=0 && b != 0)
{
if(a!= 0): {c = a;,a=0;}
if(b!= 0): {c = b;b=0;}
switch(c):
{
..... }
} RIXO 发表于 2019-8-24 08:19
虽然还没学到while{:5_109:},谢谢你啦!!
页:
[1]