int main()
{
int a=1;
while(a==1)
{
printf("是否继续:");
scanf("%d",&a);
}
printf("ok");
}
这是一个基础的while循环,可以正常运行。
int main()
{
char a='y';
while(a=='y')
{
printf("是否继续:");
scanf("%c",&a);
}
printf("ok");
}
但是我们使用字符作为循环条件时,循环无法正常运行。
注意:图中的“ok”不是我输入的,是printf 输出的
所以当我键盘输入‘y’ 和回车后,循环就结束了,然后输出“ok”了。
出现这种情况是因为输入的回车被认为是第二次scanf输入变量a的值了,上文的整型变量是不会出现这种情况。
为了解决这种情况,我们可以在%c之前加个空格来消耗掉回车。
int main()
{
char a='y';
while(a=='y')
{
printf("是否继续:");
scanf(" %c",&a);
}
printf("ok");
}