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
相关产品推荐
相关产品推荐

