繁体   English   中英

打印所有开关语句

[英]Printing all switch statements

我知道如何在C打印,但我只是想知道,如果有一次执行所有的case语句,所以我没有一个快速的方法printf再次所有菜单选项。 我希望用户先查看菜单,然后再从菜单中选择一个选项。

int main(int argc, char* argv[])
{
int menu;   
printf("Enter option : \n" );
scanf(" %c", &menu);


switch(menu)
{
        case '1':
            printf("1. Where do you live \n");
        break;

        case '2':
            printf("2. How old are you \n");
         break;

        case '3':
            printf("3. What is your name \n");
            break;

    case '4':
            printf("4. Where do you live \n");
            break;



}
return 0;
};

有一种方法可以做到。 这相当丑陋,但是您可以使用故意的失败来执行所有case语句,只要您强迫它从第一个case开始。

if (print_all)
{
  menu = '1';
}

switch(menu)
{
        case '1':
            printf("1. Where do you live \n");

        if (!print_all)
          break;

        case '2':
            printf("2. How old are you \n");

        if (!print_all)
          break;

        case '3':
            printf("3. What is your name \n");

        if (!print_all)
          break;

        case '4':
            printf("4. Where do you live \n");

        if (!print_all)
          break;
}

您可能还想看看Duff's Device,它以更特殊的方式使用开关。

如果不对switch任何(重大)修改,就无法执行所有switch情况。

但是,就您而言,我认为您不需要。 将所有菜单printf移至“ Enter option” printf上方,以便在出现提示之前显示菜单。 您根本不需要在switch语句中包含printf switch将用于处理用户的响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM