永发信息网

我这这个while循环为什么用break跳不出来?

答案:2  悬赏:80  手机版
解决时间 2021-01-21 16:09
我这这个while循环为什么用break跳不出来?
最佳答案
这样试一试:
#include 
void main()
{
    int menu = 0;
    char s ;
    while(1)
    {
        printf("请输入菜单选择:");
        scanf("%d",&menu);
        if(menu <1 || menu >3)
        {
            printf("输入错误,请输入1-3之间的数字:
");
            continue;
        //if(menu < 1 && menu > 3)
        }
        else
        switch(menu)
        {
            case 1: printf("1、棒
"); break;
            case 2: printf("2、真棒
"); break;
            case 3: printf("3、你真棒
"); break;
        }
        printf("是否继续:Y/N?");
        //这里两句换一下位置
        getchar();
        s = getchar();
        if(s=='n' || s =='N')
         {
             break;
         }
    }
}追问大神,你用的什么编译器,看起来听酷炫追答这是百度知道自带的代码格式化功能,如图:

追问好吧,再问一下,我这样写是没错的,,为什么里面加了东西就要换着写
char s ;
do
{
printf("是否继续:Y/N?");

s = getchar();
getchar();
if(s=='n' || s =='N')
{
break;
}
}while(1);
}追答因为第一个getchar会把上一次输入最后的那个回车作为输入,你第二份代码在getchar之前没有输入,所以是可行的,第一份代码,在getchar之前你已经进行scanf的输入,因此第一个getchar记录的是scanf输入完成后的回车,第二个getchar才获得你输入的 n 或者其它字符。
全部回答
s = getchar();
getchar();‘这行是不是要删除
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
男生嘴怎么变好看
想要一款实验室PH计,购买PH计之前要注意哪些
2017年,天津的水费,电费和煤气费各是多少?
为什么3ds的游戏欧美版比日版慢那么久发售
滨州到潍坊市奎文区多远
请问西雍山盟约是什么盟约?
82年是多少天多少小时多少秒
结婚彩礼钱,订婚钱,求教
爱已尽情已了一切往事都成空
请问恩字几画?
电视剧麻雀陈深最后死了吗
道之道 非常道 明之明非常明是什么意思
如何识别防范管控供给侧改革过程中的金融风险
文联与作协的关系???
绝地求生 98K在多少米内打人不用提高身位
推荐资讯
上海宝山去杭州的长途汽车站有吗
大家对晚明的历史怎么看的?
有没有靠谱的网拍模特工作室,我想做这个职业
如何坚持跑步,保持对跑步的热情?
成语“拔苗助长”中,禾苗最后死亡的原因是A.
彩虹岛我160级 用加10斗兽单9 好 还是低级斗
蒸饼的做法,简易蒸饼怎么做好吃,简易蒸饼的
欧皮好还是真皮好?
1996年农历9月30日出生,有没有成年?
为什么每次做完噩梦都会醒?
醉酒驾驶也是关在哪个看守所
男 阳历1983年3月17日,女 阳历1989年12月05日
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?