[英]Why code before break doesn't work?
int main() {
int input = 0;
do {
if(input > 1) {
printf("You entered");
break;
}
printf("Enter an integer (> 1): ");
scanf("%d",&input);
} while(input < 2);
return 0;
}
您好,我是C新手。有人可以解释一下中断是什么吗? 在此程序中,断点“您已输入”之前的语句不会显示在控制台上。 我知道Java,但这完全不同。
1
和2
之间不存在整数。 更改
if(input > 1)
至
if(input > 0)
之后,如果您输入1
则程序将输入if
主体,然后打印You entered
,遇到break
语句时,立即终止do-while
循环。
“ break”语句使您的代码立即退出循环。
您看不到任何输出,因为仅在输入严格小于2时才循环,但if语句正在寻找严格大于1的输入。
那是行不通的。 如果输入1,则if语句将不会执行(因为1> 1为false),如果输入2,则循环将立即退出(因为2 <2为false)。
您可能需要在输入<= 2时循环,或者需要测试输入> = 1。
说了这么多...
标准输出通常是行缓冲的 ,这意味着在缓冲区已满或发送换行符之前,您不会在控制台上看到任何内容。 您要么需要手动刷新流,要么发送新行作为格式字符串的一部分。 要么
printf("You entered");
fflush(stdout);
要么
printf("You entered\n");
应该管用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.