关于c语言switch case语句如何一直重复使用直到用户主动退出的问题

#include<stdio.h>
void main()
{int c;
scanf("%d",&c);
switch(c)
{
default: printf("xx");break;
case 1: printf("1"); break;
case 2: printf("2"); break;
case 3: printf("3"); break;
case 4: printf("4"); break;
case 5: printf("5"); break;
}
}

上面这段程序,如果我想输入除了5之外的任何字符时,在执行了case之后还能返回再次询问用户输入,比如我输入了1,屏幕上显示了1,但是程序不会结束,我输入2时,程序也不会结束,只有我输入5时程序才会结束,我想要达到这样的效果的应该如何修改?

switch case语句一直重复使用直到用户主动退出,这种行为,需要采用循环方式才可以达到。

switch case是顺序执行语句,执行完选择项后,就会结束这段语句。

C语言提供三种循环语句方式: for (),  while(),  do .. while()

根据代码行为特点,可选用相应的语句来实现,如,本题目用do .. while()最合适

参考代码:

#include<stdio.h>
void main()
{
    int c;
    do {
        scanf("%d",&c);
        switch(c)
        {
            default: printf("xx");break;
            case 1: printf("1"); break;
            case 2: printf("2"); break;
            case 3: printf("3"); break;
            case 4: printf("4"); break;
            case 5: printf("5-exit"); break;
        }
    }while( c!=5 );
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-07
加入一个死循环就可以了,如for(;;){
scanf("%d",&c);
if(c==5)
break;
switch(c)
{
case......
......
......
}
}
我的方法有个特点,也可以说是缺点,就是输入5的时候直接就跳了出来,不会去打印什么。
第2个回答  2012-11-07
用while (c != "5") { ... }把int c;后面的语句包起来,也就是
void main()
{int c;
while (c != "5")

{
scanf("%d",&c);
switch(c)
{
default: printf("xx");break;
case 1: printf("1"); break;
case 2: printf("2"); break;
case 3: printf("3"); break;
case 4: printf("4"); break;
case 5: printf("5"); break;
}
}
}
第3个回答  2012-11-07
#include<stdio.h>
void main()
{int c;
do
{
scanf("%d%*c",&c);
switch(c)
{

case 1: printf("1"); break;
case 2: printf("2"); break;
case 3: printf("3"); break;
case 4: printf("4"); break;
case 5: printf("5"); break;
default: printf("xx");break;
}
printf("\n");
} while (c!=5);
}本回答被提问者和网友采纳
相似回答