1

ユーザーに2つの数値を入力するように求めるコードを、VB.Netに記述します。コンソールプログラムは、2つの数値の加算を出力します。しかし、プログラムを実行したときに、入力された数値の戻り値と答えが完全に間違っている理由はわかりません。

これはコードです:

モジュールModule1

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 2番目の数字を書く:3答え:53 + 51 = 104

戻り値が完全に間違っていることがわかるように、他の多くの数値を試してみましたが、それでも戻り値が間違っていて、少し混乱しています。あなたが紳士が私を助けることができるなら、それは素晴らしいことになるでしょうありがとう。

4

3 に答える 3

3

Console.Read()入力された文字の文字コードに対応する整数を返します。入力したデータが 10 進数リテラルとして解釈されていると想定していますが、これは正しくありません。

実際に設定aしてb等しくしたいのは次のとおりです。

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 に答える