我是 C 语言的初学者,不明白为什么遵循我的部分代码不起作用:
char yn;
printf("Play again(y/n)?n");
while(yn!='y' && yn!='n'){
yn=getchar();
printf("Input:%cn",yn);
if(yn!='y' && yn!='n') printf("Please put in y or n!n");
}
首先,它从缓冲区或其他东西中读取无缝随机数字,但即使我输入 y 或 n,它仍然保持循环,即使很难确认 yn 是 y 或 n。
使用do while
循环更方便。
char yn;
do{
// Your play code goes here
printf("Play again(y/n)?n");
printf("Input:%cn",yn);
yn=getchar();
while(yn!='y' && yn!='n'){
printf("Please put in y or n!n");
yn=getchar();
}
}while(yn=='y' || yn=='Y'); //Not need to check 'n'