C# の宿題の質問: do-while ループを使用して、"play again" ロジックを追加しました。これは私の元のコードでした:
namespace demo
{
class Program
{
static void Main(string[] args)
{
Info myInfo = new Info();
myInfo.DisplayInfo("Daniel Wilson", "4 - Hi-Lo Game");
// I moved String playAgain = "N"; to here
do
{
DWHiLowUI theUI = new DWHiLowUI();
theUI.Play();
String playAgain = "N";
Console.WriteLine("Enter 'Y' to play again, any other key to exit.");
playAgain = Console.ReadLine();
}
while ((playAgain == "Y")||(playAgain =="y"));
Console.ReadLine();
}
}
}
エラーが発生しました:
Error 7 The name 'playAgain' does not exist in the current context
String playAgain = "N";
私は私の上の行に移動しましたdo
(コメントを参照)、それはうまくいきました。
これを修正するために正確に何をしたかを理解しようとしています。スコープの問題のようですが、ループ内で変数を定義すると、ループの最後に変数が渡される可能性があるようにも思えます。教科書に目を通しましたが、ループに関連するスコープについては何もありません。これは、ループ内のスコープは問題ではないことを示唆していますが、これはスコープの問題であるかのように動作しています。私はそれについて考えて混乱しています。
それがdo...while
スコープの問題である場合、メソッド内のループのスコープをよりよく理解したいと思います。範囲の問題でなければ、私の幸運な推測でした。その場合、何が間違っていて、そのコード行を移動するとどのように修正されましたか?