You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在C语言do/while循环中添加输入小于1时的退出逻辑?

实现输入小于1时退出并打印错误信息的解决方案

原代码问题分析

  • 循环条件miles != 0不符合需求,无法在输入小于1时触发退出逻辑
  • 错误提示位置错误,无法在输入非法值时及时触发
  • 缺少对输入值小于1的判断分支

修改后的代码

#include <stdio.h>
#define KILOMETERS_PER_MILE 1.609 // 定义英里转公里的常量

int main() {
    double kilometers;
    double miles;
    int inputCount;

    do {
        printf("Please enter the distance in miles: ");
        inputCount = scanf("%lf", &miles);

        // 处理输入格式错误:比如输入非数字
        if (inputCount != 1) {
            printf("ERROR: invalid input. Program has stopped.\n");
            return 2;
        }

        // 处理输入值小于1的情况:打印错误并退出
        if (miles < 1) {
            printf("ERROR: invalid input. Program has stopped.\n");
            return 1;
        }

        // 计算并输出转换结果
        kilometers = miles * KILOMETERS_PER_MILE;
        printf("That is equal to %.2f kilometers.\n", kilometers);

    // 持续循环接收输入,直到触发退出条件
    } while (1);

    // 以下代码不会被执行,因为程序会通过return提前退出
    printf("Thank you for calculating with us today.\n");
    return 0;
}

关键修改说明

  • 添加miles < 1的判断分支,满足条件时立即打印错误信息并通过return终止程序
  • 将格式错误的提示信息移至对应判断分支内,确保格式错误时能及时反馈
  • 循环条件改为while(1),让程序持续运行直到遇到非法输入触发退出
  • 调整变量定义位置,提升代码可读性

内容的提问来源于stack exchange,提问作者RenegadeQueermo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 20:01:02