YLXASRX 发表于 2019-8-22 16:15:07

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");
        }
}

flamer 发表于 2019-8-22 16:24:27

不行,逗号是个运算符,这种写法switch只判断b

YLXASRX 发表于 2019-8-22 16:39:13

flamer 发表于 2019-8-22 16:24
不行,逗号是个运算符,这种写法switch只判断b

那为什么不只判断a呢

flamer 发表于 2019-8-22 17:51:34

YLXASRX 发表于 2019-8-22 16:39
那为什么不只判断a呢

逗号运算符的结果就是最后的那个表达式,但是前面的语句都会执行,你这里b是在最后,b的结果就是整个表达式的结果

RIXO 发表于 2019-8-22 17:56:05

不能按你写的代码这样做,但可以把(a,b)重新给一个值,写个case ,要不就用个循环,每次取个值

YLXASRX 发表于 2019-8-23 16:14:21

RIXO 发表于 2019-8-22 17:56
不能按你写的代码这样做,但可以把(a,b)重新给一个值,写个case ,要不就用个循环,每次取个值

怎么使用循环呢?是用什么函数啊?

YLXASRX 发表于 2019-8-23 16:19:37

flamer 发表于 2019-8-22 17:51
逗号运算符的结果就是最后的那个表达式,但是前面的语句都会执行,你这里b是在最后,b的结果就是整个表达 ...

这样子啊谢谢谢谢!!

RIXO 发表于 2019-8-24 08:19:49

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):
       {
          .....    }
}

YLXASRX 发表于 2019-8-24 15:45:28

RIXO 发表于 2019-8-24 08:19


虽然还没学到while{:5_109:},谢谢你啦!!
页: [1]
查看完整版本: switch可以输出两个值吗?