そこで私は、誰かが生まれた年を取り、その人が何歳で、生まれた年についての事実を伝えるプログラムを書いています. -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 単位の長さなので、テキストの壁を投稿しないようにハッシュテーブルのほとんどを削除しましたが、問題が私がそれらを行った方法にある場合に備えて、いくつか残しました。それらは事実と数を除いてすべて同一です。