C 如何继续循环程序直到';y';或';n';输入
我希望程序继续要求用户输入另一个字母,直到输入“y”或“n”。while循环无法正常工作。 这是我目前的代码:C 如何继续循环程序直到';y';或';n';输入,c,C,我希望程序继续要求用户输入另一个字母,直到输入“y”或“n”。while循环无法正常工作。 这是我目前的代码: #include<stdlib.h> int main(void) { char answer; printf("Please enter a letter: "); scanf("%c", &answer); while (answer!= 'y' || answer!= 'n') { printf("
#include<stdlib.h>
int main(void)
{
char answer;
printf("Please enter a letter: ");
scanf("%c", &answer);
while (answer!= 'y' || answer!= 'n')
{
printf("Please enter another letter:");
scanf("%c", &answer);
}
printf("You entered either yes or no\n");
system("pause");
return 0;
}
#包括
内部主(空)
{
答案;
printf(“请输入一个字母:”);
scanf(“%c”和“应答”);
while(答案!=“y”|答案!=“n”)
{
printf(“请输入另一个字母:”);
scanf(“%c”和“应答”);
}
printf(“您输入的是或否”);
系统(“暂停”);
返回0;
}
这是一个固定版本。请注意stdio.h
的包含,以及将|
固定到&&
以及%c
之前的空格固定为%c
#包括
#包括
内部主(空)
{
答案;
printf(“请输入一个字母:”);
scanf(“%c”和“应答”);
while(答案!='y'&&answer!='n')
{
printf(“请输入另一个字母:”);
scanf(“%c”和“应答”);
}
printf(“您输入的是或否”);
系统(“暂停”);
返回0;
}
应该是
while (answer!= 'y' && answer!= 'n')
因为第一个条件对于变量中的每个字符始终为真。
answer!='回答n'
总是正确的。请稍微考虑一下您的条件逻辑。此外,当您修复循环中的scanf
调用以读取字符时,请在格式字符串中添加前导空格,以跳过上次调用中留在输入缓冲区中的换行符。如果用户未输入yes(y)或no(n),不断要求他们输入字母答案
不能同时是'y'
和'n'
,因此至少有一个条件始终为真。但是,当编译器要求我再次输入字母时,它会不断循环,不会出于某种原因在屏幕上停止,但当我这样做时,编译器让我第二次输入一个字母,屏幕继续循环。我不再使用它了,我只是把它错误地保留在typing@DvR_109你试过一个用户的建议吗?使用scanf(“%c”和&answer)代码>?注意“%c”
中的空格。哦,好的,是的,我现在知道了。这不是一个真正的答案。
while (answer!= 'y' || answer!= 'n')
while (answer!= 'y' && answer!= 'n')