我在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
正如你可以看到返回值是完全错误的,我尝试了许多其他数字,但返回值仍然是错误的,我有点混乱。如果你绅士可以帮助我,那将非常感谢你。
答案 0 :(得分:3)
Console.Read()
返回一个与输入字符的字符代码对应的整数。您假设您输入的数据被解释为十进制数字文字,但这是不正确的。
您实际想要设置的a
和b
等于:
Convert.ToInt32(Convert.ToChar(Console.Read()).ToString())
答案 1 :(得分:2)
你正在混淆
中的类型Console.WriteLine(a & "+" & b & "=" & c)
线。
53是字符串“5”的数字表示,51是“3”的相同。
如果您要将输入更改为5和5;它会打印出来。
53 + 53 = 106
作为一个有趣的实验,看看当你按下字母'a'而不是数字时会发生什么。
编辑:
请参阅Smartcavemans答案,了解正确的语法以解决您的问题。
答案 2 :(得分: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
注意:如果输入任何不是有效整数的内容,则可能会抛出异常。