eğer metodlar hakkında (henüz) bilgi sahibi değilseniz label etiketi kullanarak kodlar arasında ileri-geri gitmek işinizi kolaylaştırabilir. Ayrıca işlemlerin bir biriyle ilgisi yoksa iç içe karar yapısı kullanmak karışıklığa sebep olabilir. Bu nedenle önce bir if bloğu işlemini tamamen sona erdirip daha sonra ikinci soru için if yapısı oluşturmak şu örnek için bence daha kullanışlı olur. Şu şekilde bir dener misiniz.
Label1:
Console.Clear();
Console.WriteLine("matematik yarışmasına hoş geldiniz!!! \n ");
Console.WriteLine("Öncelikle bu uygulamaya uygun olup olmadığınızı öğrenmek istiyorum. Kaç yaşındasınız?");
int age = Convert.ToInt32 (Console.ReadLine ()) ;
if (age < 18)
{
Console.WriteLine("Bu yarışma için çok küçüksün\n");
Console.ReadKey();
goto Label1;
}
Console.WriteLine("yaşınız yetiyor girebilirsiniz!");
Console.ReadKey();
Console.WriteLine(" \n \n eğer hazırsanız soruya geçelim ");
Label2:
Console.Clear();
Console.WriteLine("2 + 2 = ?");
int soru = Convert.ToInt32(Console.ReadLine());
if (soru == 4)
{
Console.WriteLine("doğru \n");
Console.WriteLine("\n \n sıradaki soruya devam etmek için <space> basınız ");
Console.ReadKey();
}
else
{
Console.WriteLine("yanlış \n");
Console.ReadKey();
goto Label2;
}
Console.Clear();
Console.WriteLine("35 + 22 + 11 - 3 = ? ");
int soruw = Convert.ToInt32(Console.ReadLine());
Console.ReadKey();
if (soruw == 65)
{
Console.WriteLine("aferin doğru \n");
Console.ReadKey();
Console.WriteLine(" \n \n tebrikler milyonersiniz! ");
Console.ReadKey();
}
else
{
Console.WriteLine("yanlış \n");
Console.WriteLine(" \n \n birdaha oynamak için space e basın ");
Console.ReadKey();
goto Label1;
}