【问题标题】:Print an "Error" statement after do-while loop in C在 C 中的 do-while 循环之后打印“错误”语句
【发布时间】:2013-10-30 04:59:07
【问题描述】:

如何在 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();
}

【问题讨论】:

  • 只需要在scanf后面加一个if语句即可。
  • 你可以在你的while语句中添加&amp;&amp; printf(error)以避免额外的检查,但是嘿......
  • 如果你想验证用户输入..我在这个答案中建议,阅读Scanf won't execute for second time
  • 并且,当您检查输入时,不要忘记检查 scanf() 是否没有报告问题。你需要if (scanf("%d", &amp;inp) != 1) { ...handle error... } 或类似的东西。

标签: c loops do-while


【解决方案1】:

你可以做以下两件事之一:

在 while 循环的末尾添加一个额外的检查:

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

或者你可以避免额外的检查,同时牺牲一点可读性并改变你的 while 循环到

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

这是因为如果第一条语句为真,printf() 将不会因为短路而被执行,但如果为假,printf() 将在返回循环顶部之前执行。

【讨论】:

  • +1 表示“...牺牲一点可读性...”在这种情况下。
  • 这确实有助于解决问题,但是我的真实代码使用原型函数并且不起作用
最近更新 更多