1

我在 VB.Net 上编写了一个代码,要求用户输入两个数字,控制台程序将输出这两个数字的相加。但是我不知道为什么,当我运行程序时,输入的数字的返回值和答案完全错误。

这是代码:

模块模块1

Sub Main()
    Dim a As Integer = 0
    Dim b As Integer = 0
    Dim c As Integer = 0
    Console.Write("Write a number: ")
    a = Console.Read()
    Console.ReadLine()
    Console.Write("Write the second number:")
    b = Console.Read()
    c = a + b
    Console.ReadLine()
    Console.Write("Answer:")
    Console.WriteLine(a & "+" & b & "=" & c)
    Console.Read()
End Sub

端模块

因此,当我运行程序时,会发生以下情况:

写一个数字:5 写第二个数字:3 答案:53+51=104

如您所见,返回值完全错误,我尝试了许多其他数字,但返回值仍然错误,我有点困惑。如果您能帮助我,那将是非常好的,谢谢。

4

3 回答 3

3

Console.Read()返回一个与输入字符的字符代码相对应的整数。您假设您输入的数据被解释为十进制数字,但这是不正确的。

你真正想要设置ab等于的是:

Convert.ToInt32(Convert.ToChar(Console.Read()).ToString())

于 2012-08-16T02:44:15.713 回答
2

你在你的混合类型

Console.WriteLine(a & "+" & b & "=" & c)

线。

53 是字符串“5”的数字表示,51 与“3”相同。

如果您要将输入更改为 5 和 5;它会打印。

53+53=106

作为一个有趣的实验,看看当你按下字母“a”而不是数字时会发生什么。

编辑 :

请参阅 Smartcavemans 答案,了解解决您问题的正确语法。

于 2012-08-16T02:35:58.243 回答
0

尝试这个:

Sub Main()
    Dim a As Integer = 0
    Dim b As Integer = 0
    Dim c As Integer = 0

    Console.Write("Write a number: ")
    a = Convert.ToInt32(Console.ReadLine())

    Console.Write("Write the second number:")
    b = Convert.ToInt32(Console.ReadLine())

    c = a + b

    Console.Write("Answer:")
    Console.WriteLine("{0} + {1} = {2}", a, b, c)

    Console.ReadLine
End Sub

注意:如果您输入任何不是有效整数的内容,这可能会引发异常。

于 2012-08-17T16:01:33.730 回答