私は C# 用の在庫プログラムを作成しています。これまでのところ、在庫内のすべてのアイテムを出力する関数をスクリプト化しました。次に、アイテムに関する詳細情報を取得する関数を作成しています。在庫を印刷すると、アイテムの名前だけが印刷されます。この関数はすべての詳細を出力するため、武器の場合は名前、ダメージ、およびクリティカル ヒットが出力されます。
だからここに私のGetInfo関数があります:
public void GetInfo()
{
Console.WriteLine("If you want more detail about an item, type the number to its left. \nOtherwise, type (Q)");
int getinfo;
int.TryParse(Console.ReadLine(), out getinfo);
getinfo -= 1;
if(getinfo > InventorySlots || getinfo < 0)
{
throw new System.Exception("You entered an invalid number");
}
if (weapons.Count >= getinfo)
{
Console.Clear();
Console.Write("Weapon Name: " + weapons[getinfo].name + "\nDamage: " + weapons[getinfo].damage + "\nCritical: " + weapons[getinfo].critical);
Console.ReadLine();
}
else if ((weapons.Count + armors.Count) >= getinfo)
{
Console.Clear();
Console.Write("Armor Name: " + armors[getinfo].name + "\nArmor Value: " + armors[getinfo].armor + "\nHealth Boost: " + armors[getinfo].healthboost);
Console.ReadLine();
}
else if ((weapons.Count + armors.Count + ores.Count) >= getinfo)
{
Console.Clear();
Console.Write("Ore Name" + ores[getinfo].name + "(" + ores[getinfo].stack + ")");
}
}
さて、問題は次のステートメントです。
if(weapons.Count >= getinfo
getinfo がweapons.Countよりも大きいにもかかわらず、実行中です。ステートメントが無効な場合、ステートメントが実行されるのはなぜですか?
ありがとう。