如何在VB中为Do Until循环添加Or条件?解决System.InvalidCastException错误
问题解决:VB密码生成器的类型转换错误
你的代码报错是因为Do Until的条件判断写法错误。原代码里的capitals = "yes" Or "no",VB会尝试把字符串"no"转换成布尔值来参与逻辑判断,但字符串无法直接转为布尔类型,因此抛出了System.InvalidCastException异常。
修正后的代码
Dim capitals As String Do Until capitals = "yes" Or capitals = "no" Console.WriteLine("你希望密码包含大写字母吗?") capitals = Console.ReadLine() Loop
可选优化:提升输入容错性
可以把输入转为小写,这样用户输入Yes/YES/No/NO这类格式也能被正确识别:
Dim capitals As String Do Until capitals?.ToLower() = "yes" Or capitals?.ToLower() = "no" Console.WriteLine("你希望密码包含大写字母吗?") capitals = Console.ReadLine() Loop
内容的提问来源于stack exchange,提问作者Dylan Andrews
相关产品推荐
相关产品推荐

