-1

在这里,我刚刚体验了 C 中的 switch 命令和 if 命令。我通过注释省略了 if 命令,并使用 switch 命令编写了相同的命令。但它现在按照我的指示工作。我在哪里弄错了?因为我是学习者,请原谅我的错误..

 #include <stdio.h>
    #include<stdlib.h>
    int main()
    {
        char card_name[3];
        puts("enter the card name: ");
        scanf("%2s", card_name);
        /*int val=0;
        if (card_name[0]=='K') {
            val=10;
        } else if (card_name[0]=='Q'){
            val=10;
        } else if (card_name[0]=='J'){
            val=10;
        } else if (card_name[0]=='A'){
            val=11;
        }else{
            val=atoi(card_name);
        }*/
        int val=0;
        switch (card_name[0]) {
            case 'K':
            case 'Q':
            case 'J':
            val=10;
            break;
            case 'A':
            val=11;
            default:
            val=atoi(card_name);
            break;
        }
        if (val>2 && val<7) {
            puts("the count has gone up!");
        } else if(val>=10){
            puts("The count has gone down");
        }
        return 0;
    }
4

3 回答 3

2

你错过了这个'A'案子的另一个突破。你的 switch 语句应该看起来像这样(我为你添加了缩进)。

switch (card_name[0]) {
    case 'K':
    case 'Q':
    case 'J':
        val=10;
        break;
    case 'A':
        val=11;
        break; // you were missing a break statement here
    default:
        val=atoi(card_name);
        break;
}
于 2013-11-03T00:38:51.193 回答
1

没有break;for case 'A'.. 这是故意的吗?

于 2013-11-03T00:39:16.020 回答
1

如果 'A':, 在默认标签之前,您会缺少一个 break 语句。您应该在 case 语句中的每个语句之后中断,除非您打算让其他 case 以及给定的 case 执行。

于 2013-11-03T00:39:36.630 回答