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,但这完全不同。
答案 0 :(得分:4)
1
和2
之间不存在整数。改变
if(input > 1)
到
if(input > 0)
之后,如果您输入1
,则程序会进入if
正文,然后打印You entered
并在遇到break
语句时立即终止do-while
循环
答案 1 :(得分:2)
“break”语句会导致代码立即退出循环。
您没有看到任何输出,因为您只在输入严格小于2时循环,但您的if语句正在寻找严格大于1的输入。
那不行;如果输入1,则if语句不会执行(因为1> 1为假),如果输入2,则循环立即退出(因为2&lt; 2为false)。
您需要在输入&lt; = 2时循环,或者您需要测试输入&gt; = 1.
说完了所有......
标准输出通常是行缓冲,这意味着在缓冲区已满或发送换行符之前,您不会在控制台上看到任何内容。您需要手动刷新流或发送换行作为格式字符串的一部分;任
printf("You entered");
fflush(stdout);
或
printf("You entered\n");
应该有用。