2012-08-16 108 views
1

我在VB.Net上編寫了一個代碼,要求用戶輸入兩個數字,控制檯程序將輸出兩個數字的加法。但我不知道爲什麼,當我運行程序時,輸入的數字的返回值和答案是完全錯誤的。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

正如你所看到的返回值是完全錯誤的,我嘗試了許多其他的數字,但返回值仍然是錯誤的,我有點混淆。如果你紳士可以幫助我,那會很棒,謝謝。

回答

2

你在你的

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

式混合起來的類型。

53是字符串「5」的數字表示,51對於「3」是相同的。

如果您要將輸入更改爲5和5;它會打印。

53 + 53 = 106

作爲一個有趣的實驗,看當你按下字母 'A',而不是一個數量會發生什麼。

編輯:

請參閱Smartcavemans回答正確的語法來解決問題。

+0

嗯可能;你能把它編輯成你的問題嗎?我的閱讀障礙使得很難閱讀這樣的代碼:( – 2012-08-16 02:55:08

3

Console.Read()返回一個整數,該整數對應於輸入字符的字符代碼。您假設您輸入的數據被解釋爲十進制數字,但這是不正確的。

你真的想設置a什麼和b等於是:

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

+0

感謝您的語法修復,忘記了Console.Read返回一個Int。 – 2012-08-16 02:47:30

+0

@RussC,團隊合作;-) – smartcaveman 2012-08-16 02:48:45

+0

我改變了這一行:a = Convert.ToInt32 (Convert.ToChar(Console.Read()))和b = Convert.ToInt32(Convert.ToChar(Console.Read())),但結果仍然相同。 – 2012-08-16 03:09:07

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 

注:如果您輸入任何不是一個有效的整數,這可能會拋出異常。

+0

我嘗試了您的代碼,但它沒有顯示註釋(寫入數字,寫入第二個數字,答案),但它沒有顯示註釋如果沒有出現,評論的用途是什麼。 如果我想沒有意見我會編寫此代碼: 的Sub Main() 昏暗一個爲整數= 0 昏暗b以整數= 0 一個=到Console.ReadLine() B =到Console.ReadLine () Console.WriteLine(a + b) Console.Read() End Sub – 2012-08-18 20:06:39

+0

它適用於我,因爲我在發佈它之前對其進行了測試。你在哪裏放置代碼?你正在運行什麼類型的項目? Windows窗體?安慰? Console.Writeline只能在控制檯應用程序中使用。 – 2012-08-20 13:18:52

+0

我在Windows控制檯上運行。 – 2012-08-21 00:30:41