为什么“简单开关”保护套不起作用?

时间:2019-08-23 17:00:39

标签: c

我希望它为每种情况分配一个字符串值,并且还能够打印

int main()
{
    int a;
    char d;
    printf("Input a Number\n");
    scanf("%d",&a);

    switch(a)
    {
    case 1:
        d='One';
    case 2:
        d='Two';
    case 3:
        d='Three';
    }

    printf("You entered %s",d);
    return 0;
}

我希望输出:

input a number
1

you entered one

2 个答案:

答案 0 :(得分:5)

您的代码有几个问题:

  1. 缺少var runApp = { init: function(){ console.log(this); this.run() }, run: function() { console.log("It's running!"); } }; // Now we call init runApp.init();
  2. 在'到字符之间分配“字符串”
  3. 缺少#include <stdio.h>条语句。如果没有break,程序的流程将直接继续到下一个break
  4. 并不是很错误,但是风格很差:您应该使用有意义的名称来命名变量。

更正的代码:

case

请注意,C语言中不存在“字符串”类型。请阅读初学者的C课本中有关字符串的章节。

暂时忘记使用#include <stdio.h> int main() { int number; const char *numbername; // const is not mandatory printf("Input a Number\n"); scanf("%d", &number); switch (number) { case 1: numbername = "One"; break; case 2: numbername = "Two"; break; case 3: numbername = "Three"; break; } printf("You entered %s", numbername); return 0; } 关键字,这是一个更高级的主题。

答案 1 :(得分:0)

问题不在于case语句:您的问题是字符串文字用双引号")包围,而不用单引号({{1} }),因为它们是保留给字符文字的。

奇怪的是,您在下面的'调用中使用了双引号。

注意:该程序应该对此有所抱怨,因此您尚未获得可执行程序。请不要只是说这是行不通的,因为这里发布的每个问题都与行不通的事情有关。