C++ while为什么会无限循环? c语言while无限输出
更新时间:2022-01-22 02:19:04 • 作者:TABITHA •阅读 5892
为什么while(1)表示无限循环
while(条件)
{
代码
}
当条件为真时执行大括号里面的代码,因为1为真,所以循环会一直执行,当然可以在循环内部用break语句跳出循环
C语言,while出现无限循环。
这个原因是这样的:
当你输入非法时,你的输入将留在输入缓冲区中。这样下一次循环,因为输入缓冲区中仍然有数据,就会再次做判断,判断非法继续留在输入缓冲区中,如此反复。。。。
解决方法也很简单,加一句fflush(stdin)即可。
#include <stdio.h>
int main(void)
{
int b,a;
a=b=0;
while(a != 11)
{
b=(scanf("%d",&a));
if(b == 1)
printf ("%d\n",b);
else
{
printf ("++++%d\n",b);
fflush(stdin);
}
}
return 0;
}
C/C++,while循环。。为何满足循环条件了还继续循环!
你的目的应该是当用户输入了错误的字符则要一直等他输入正确的字符才继续向下执行吧
要是这样的话应该是下边这样的逻辑
while ( no != 'a' && no !='A' && no != 'B' && no != 'b' )
即使no = 'a'了
则
no != 'a' false
no != 'A' true
no != 'b' true
no != 'B' true
按你的代码这4个逻辑一or则为true,必定循环下去
C语言题目 输入字符为什么会无限循环
d>0就会无限循环,你输入一个负数试试。
d是double类型,你却输入字符串,崩溃也是正常的。
不知道你想问啥