2013-10-30 137 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