我这这个while循环为什么用break跳不出来?
答案:2 悬赏:80 手机版
解决时间 2021-01-21 16:09
- 提问者网友:人生佛魔见
- 2021-01-20 22:01
我这这个while循环为什么用break跳不出来?
最佳答案
- 五星知识达人网友:杯酒困英雄
- 2021-01-20 22:46
这样试一试:
#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 或者其它字符。
#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 或者其它字符。
全部回答
- 1楼网友:大漠
- 2021-01-20 22:54
s = getchar();
getchar();‘这行是不是要删除
getchar();‘这行是不是要删除
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯