这是我在几周前刚开始学习 C 时在这里发布的关于 C 编程的第一个问题。我会写下我的代码并问我的问题是什么:) 如果有人知道我可以如何解决我的错误或者我应该为我的代码替换什么,请回复:)!
我遇到的问题是,如果您自己运行代码,您会发现一切正常,除了语句中的“else”部分。我遇到的问题是,当有人键入多个字母时,它将多次运行最后一个 printf 语句,并且将printf
与用户输入除 y 或 n 以外的字符一样多次。
带有 Y 或 N 的第一部分工作正常,但如果他们输入任意数量的其他字符,它不会只是说“请再次选择”,一次然后重新扫描,它至少输入 2 个 printfs,只是为了即使输入了一个字符,“请再次选择”“请再次选择”,然后,如果您输入更多字符作为答案,它只会输入更多“请再次选择”。
请帮助我理解我做错了什么,因为我非常热衷于学习正确编程,但我只是被困在这里 :)
#include <stdio.h>
#include <conio.h>
int main()
{
char answer;
int loop = 0;
printf("Please select. [Y/N]:\n");
while (loop == 0)
{
scanf("%c", &answer);
if (answer == 'y' || answer == 'Y')
{
printf("Seeyou Later Aligator.\n");
break;
return 0;
}
else if (answer == 'n' || answer == 'N')
{
printf("Mmkay.\n");
break;
return 0;
}
else
{
printf("Please select again [Y/N]:\n");
loop = 0;
}
}
getch();
return 0;
}