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

C# do-while循环实现问题求助:无法限制输入值在1-23区间

问题分析与修正

你的代码存在多处逻辑错误,完全偏离了题目要求,以下是具体问题和修正方案:

核心问题点

  • 未使用题目要求的hour变量:你用x作为计数器,但题目要求将输入值存入hour变量,所有判断都应基于hour而非无关的x。
  • 输入值未被存储:多次调用int.Parse(Console.ReadLine())却没有赋值给任何变量,导致输入的数值完全没被使用。
  • 循环条件错误:当前循环条件是while(x<10),意味着最多循环10次就结束,和“输入值在1-23之间才退出”的要求无关。
  • 逻辑冗余混乱:循环体里重复读取输入,判断逻辑基于无关的x变量,完全无法实现需求。

修正后的代码

class numbersLoop
{
    static void Main()
    {
        int hour;
        do
        {
            Console.WriteLine("Write a number:");
            // 读取输入并赋值给hour变量
            hour = int.Parse(Console.ReadLine());
            // 只要hour不在1-23范围内,就继续循环
        } while (hour < 1 || hour > 23);
        
        Console.WriteLine("The right number..");
    }
}

修正说明

  1. 定义了题目要求的hour变量,用于存储每次输入的整数。
  2. 将int.Parse(Console.ReadLine())的结果赋值给hour,确保输入值被正确捕获。
  3. 调整循环条件为while (hour < 1 || hour > 23),意思是只要hour不在1到23的范围内,就继续循环,完全符合题目“仅当hour在1-23之间时退出循环”的要求。
  4. 移除了冗余的输入读取和无关的x计数器,简化逻辑,让代码更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 00:22:15