2013-10-30 170 views
1

如何在do-while循环后打印一条消息,告诉输入错误?还是我使用了一个错误的循环?在C中的do-while循环之后打印“错误”语句

#include <stdio.h> 
#include <conio.h> 

void main(){ 
    int inp; 
    do{ 
     clrscr(); 
     printf("Enter Number < 10: "); 
     scanf("%d",&inp); 
    } 
    while(inp>10); // Print "Wrong" when inp>10 
    printf("Right Answer!"); 
    getch(); 
} 
+3

只需在scanf后添加if语句即可。 – this

+4

你可以在你的while语句中添加'&& printf(error)'以避免额外的检查,但是嘿... – Sinkingpoint

+0

如果你想验证用户输入..我在这个答案中建议,阅读[Scanf将不会执行第二次](http://stackoverflow.com/questions/17827603/scanf-wont-execute-for-second-time/17827635#17827635) –

回答

4

你可以做两两件事之一:

添加额外的检查,以while循环的末尾:

if(inp>10){ 
    printf("error"); 
} 

,或者你可以避开额外的检查,同时牺牲一点可读性和更改,而 环路

while(inp>10 && printf("error")) 

这工作,因为如果第一条语句如果为true,则由于短路而不会执行printf(),但如果它为假,则printf()将在返回到循环顶部之前执行。

+1

对于“* ...在这种情况下牺牲了一点可读性......”的+1。 – alk

+0

这真的有助于解决问题,但我真正的代码使用原型功能,并不起作用 – 707