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

C#如何验证用户yes/no输入有效性并在无效时重新提问

核心问题说明

你现有代码的死循环问题源于while判断的逻辑运算符使用错误:你使用了||(或),该条件下无论输入任何内容,都会满足「不等于yes」或「不等于no」的其中一项,导致循环永远不会退出。你需要将逻辑运算符替换为&&(且),仅当输入既不是yes也不是no时才触发重输逻辑。

优化后实现代码
using System;
class Program
{
    static void Main(string[] args)
    {
        // 首次提问
        Console.WriteLine("你想观看这部精彩的电影吗?");
        string answer = Console.ReadLine()?.Trim().ToLower() ?? "";

        // 输入校验循环
        while (answer != "yes" && answer != "no")
        {
            Console.WriteLine("请回答yes或no");
            answer = Console.ReadLine()?.Trim().ToLower() ?? "";
        }

        // 结果处理
        if (answer == "yes")
        {
            Console.WriteLine("好的,现在为您播放电影");
            // 此处添加播放电影的业务逻辑
        }
        else
        {
            Console.WriteLine("已跳过电影播放流程");
            // 此处添加后续流程逻辑
        }
    }
}
优化点说明
  • 修正了循环条件的逻辑错误,彻底解决死循环问题
  • 统一在读取输入时完成去空格、转小写、空值兼容处理,避免后续重复调用ToLower()方法,代码更简洁易读
  • 兼容用户直接回车、输入前后带空格的异常场景,鲁棒性更强

内容的提问来源于stack exchange,提问作者Someone somewhere in the world

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 10:45:04