3

そこで私は、誰かが生まれた年を取り、その人が何歳で、生まれた年についての事実を伝えるプログラムを書いています. -2012年と今、誰かが年に入ったときにそれらを出力しようとしています。現在、それは年を取って、私が取得しようとしていた計算を実行し、正しい年齢番号を取得していますが、ハッシュテーブルとは正反対です (たとえば、1950 年に生まれたと言った場合、プログラムは、生年月日が 2012 であると答えた人に、それが与えるべき応答を与える、など)。

これがこれまでのコードです。最初からやり直すことなく、修正する方法があることを願っています。

Imports System
Imports System.Collections

Module Module1
  Sub Main()
    Console.WriteLine("This program tells you your age based off of your birth year, and gives you a fact about that year. Please note, this year does not account for the recent year change to 2013 due to the majority of the work on it being done prior to 2013")
    Dim Years As New Hashtable
    Years.Add(0, "You are most likely less than 1 year old, your birth year (2012) was the year that the US Embassy in Lybia was attacked, leaving the US ambassador dead.")
    Years.Add(1, "You are most likely 1 year old, your birth year (2011) was the year that Osama Bin Laden, the master mind behind the September 11th attacks, was killed by Seal Team 6 in Pakistan.")

    Console.WriteLine("Please input the year of your birth.")
    Dim x As Integer
    Dim Y As Integer
    Try
        x = Console.ReadLine
    Catch ex As InvalidCastException
        Console.WriteLine("Please input a year between 1950 and 2012, the program will not work with an empty number.")
        End
    End Try
    Y = 2012 - x
    Console.WriteLine(Years.Values(Y))
    Console.ReadKey()
  End Sub
End Module

ハッシュテーブルは 63 単位の長さなので、テキストの壁を投稿しないようにハッシュテーブルのほとんどを削除しましたが、問題が私がそれらを行った方法にある場合に備えて、いくつか残しました。それらは事実と数を除いてすべて同一です。

4

2 に答える 2

0

すべてのファクトを含む文字列配列を作成してみませんか? それからあなたはただすることができます

Dim facts as String() = {"fact0", "fact1", ...}
Dim Y as String = facts(2012 - x) 'Y is your value
于 2013-01-04T01:16:26.330 に答える