关于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);
}本回答被提问者和网友采纳

关于c语言switch case语句如何一直重复使用直到用户主动退出的问题
switch case语句一直重复使用直到用户主动退出,这种行为,需要采用循环方式才可以达到。switch case是顺序执行语句,执行完选择项后,就会结束这段语句。C语言提供三种循环语句方式: for (), while(), do .. while()根据代码行为特点,可选用相应的语句来实现,如,本题目用do .. while()最合适 ...

求问这道关于Switch语句的c语言的题
这是因为这个switch...case句块的执行顺序是这样的,一开始k=8,在case从句中没有匹配的,所以它会执行defult句块中的内容,因为没有break语句来中断,所以在那之后会继续往下执行case10,case11句块中的内容,直到触底退出,因为这个过程共有3个k+=1语句,所以k被加了3次1,这样k的值就从8变成了...

C语言的switch语句中case后()
1、首先计算“表达式”的值,假设为 m。2、 从第一个 case 开始,比较“整型数值1”和 m,如果它们相等,就执行冒号后面的所有语句,也就是从“语句1”一直执行到“语句n+1”,而不管后面的 case 是否匹配成功。3、如果“整型数值1”和 m 不相等,就跳过冒号后面的“语句1”,继续比较第二个 ...

Switch case 语句怎么使用
嵌套的if语句层数就会很多,导致程序冗长,可读性下降。因此C语言提供switch语句来处理多分支选择。所以if和switch可以说是分工明确的。在很多大型的项目中,多分支选择的情况经常会遇到,所以switch语句用得还是比较多的。

C语言里switch语句为什么case后面有的加Break有的不加?
java 中使用switch case语句需要加入break 做了具体的实例分析,及编译源码在源码中分析应该如何使用,可以参考如下:假设我们有如下这样一个switch语句:当我们在执行上面的方法时,如果我们传入的参数是1,那么会输出1、2、3和default,如果传入的参数是2,那么会输出2、3和default,这是为什么呢?这是...

C语言中switch的使用方法是什么?
1没有break语句,因此继续执行case 2,y=y*2=1*2=2。3、由于第一个case 1分支也没有break语句,继续执行case 2:x++,y++,执行后的结果是:x=3,y=3。4、由于case 2分支也没有break语句,因此执行case 3:x*=2,y*=2,执行后的结果是:x=6,y=6。5、跳出switch语句后打印,输出x...

关于c语言switch语句的用法
首先,switch 语句中的常量表达式只是起到一个入口作用, 一旦执行了相应的语句后, 只要没有强迫中断语句(break),它就会一直按顺序继续执行下去, 也就是会执行其它case 后面的语句, 直到遇到“}” 符号才停止。 乍看觉得有点不可事议, 但若仔细回味且切身编程体会, 那么就会感司到C的switch 语...

win32程序创建线程用c语言库的_beginthread还是API的CreateThread?哪种用...
程序使用C运行库的问题。让我们用一个例子来了解可能遇到的问题。以标准C运行库的全局变量errno为例。有的函数会在出错时设置该变量。假定现在有这样的一个代码段:BOOL fFailure = (system("NOTEPAD.EXE README.TXT") == -1);if (fFailure) {switch (errno) {case E2BIG: \/\/ Argument list or ...

C语言源程序文件的后缀是什么?
在Windows操作系统下,C语言源程序后缀为.c 、编译后的后缀为 .obj 或 .o 、连接后生成的可执行文件的后缀为.exe。告诉你们一个手机降温的办法:纸巾用水浸湿后不断擦拭手机后盖,注意水不能擦太多,薄薄擦一点就好了,关键是要后盖上的水快速蒸发。待后盖上的水珠蒸发干后,又重复擦拭,一直重复至...

C语言goto语句如何使用?
goto语句使用:1、C#语言中 using System;using static System.Console;class Program { public static Int32 Main(String[]args){ int n=0;WriteLine("input a string:\\n");loop:if(Read()!='\\r'){ n++;goto loop;} WriteLine("{0}",n);return 0;} } 2、C语言中 统计从键盘输入...

相似回答