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

C# Do/while循环中密码校验时如何显示错误提示而非重复原始询问

C# 登录程序密码校验提示优化方案

首先修正你原有代码的逻辑错误:while判断条件中的&&(逻辑与)需要替换为||(逻辑或),因为密码长度不可能同时满足「小于8」和「大于等于10」,原有校验条件永远不触发,循环只会执行一次。

实现思路

  • 新增布尔类型标记位区分是否为首次输入
  • 首次循环输出原始创建密码提示,校验不通过后修改标记位,后续循环输出重试提示

可直接运行的完整代码

// 新增标记位,标记是否为第一次输入密码
bool isFirstInput = true;
do
{
    if (isFirstInput)
    {
        AdvancedUtilities.TyperwriterTextEffect("Please create a password for your account (8-10 characters): ");
    }
    else
    {
        AdvancedUtilities.TyperwriterTextEffect("Please try again: ");
    }
    
    AccountPassword = Console.ReadLine();
    _accountPassword = AccountPassword;
    
    // 第一次输入完成后修改标记位
    isFirstInput = false;
// 替换逻辑与为逻辑或,修复校验规则
} while (_accountPassword.Length < 8 || _accountPassword.Length >= 10);

运行逻辑说明

首次进入循环时显示原始创建密码提示,用户输入不符合长度要求时,isFirstInput已经被修改为false,下次进入循环就会显示重试提示,不会重复输出原始提示内容。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:54:03