运行时错误:从字符串“y”到“布尔”类型的转换无效

时间:2013-05-31 17:54:46

标签: vb.net

我需要以下代码的帮助,因为它不起作用:

    Do While answer = "Y" Or "y"
        num = "0"
        Console.WriteLine("Enter number")
        num = Console.ReadLine
        total = total + num
        Console.WriteLine("Do you want to continue Y/N")
        answer = Console.ReadLine
    Loop

1 个答案:

答案 0 :(得分:5)

在VB.NET中,逻辑和位运算符的优先级低于比较运算符,因此要求

Do While answer = "Y" or "y"

与询问

相同
Do While (answer = "Y") or "y"

对于第一个条件,answer = "Y"可以是true或false,对于第二个条件,"y"既不是true也不是false - 它是一个字符串,所以该语句没有意义。

你的第二次测试应包括变量测试。像这样:

Do While answer = "Y" Or answer = "y"
当表达式为真时,

answer = "y"将被编译器解释为TrueFalse

就像问:“我的y变量中的值是answer吗?”

只需尝试将y转换为布尔值(True或False),就像您现在所做的那样,会导致转换错误,就像您获得的那样。