İç İçe Döngüler
Coddy'nin C# Journey'sinin Temeller bölümünün bir parçası. Ders 46 / 69.
İç içe döngü, başka bir döngünün içindeki döngüdür. İç döngü, dış döngünün her bir yinelemesi için tüm yinelemelerini tamamlar.
Bunun için iyi bir benzetme saattir: her saat için (dış döngü), dakika ibresi (iç döngü) 60 dakikalık tam bir döngüyü tamamlamalıdır.
İç içe döngü örneği:
int rows = 2;
int cols = 2;
for (int x = 0; x < rows; x++) {
for (int y = 0; y < cols; y++) {
Console.WriteLine(x + " " + y);
}
}
// Bu, şu çıktıyı verecek:
// 0 0
// 0 1
// 1 0
// 1 1Dış döngü (x) rows kez çalışır ve bu çalıştırmaların her birinde iç döngü (y) cols kez çalışır; yani iç döngünün gövdesi toplamda 2 × 2 = 4 kez yürütülür. Her döngünün kendi sayacı vardır: dış döngü her çalıştığında y yeniden 0 değerinden başlar; rows ve cols ise aynı kalır ve döngülere yalnızca ne zaman durmaları gerektiğini söyler.
İç içe döngülerle çalışırken Console.Write() yöntemine de ihtiyacın olabilir. Metni yazdırıp yeni bir satıra geçen Console.WriteLine() yönteminin aksine, Console.Write() metni sonuna yeni satır eklemeden yazdırır. Böylece çıktıyı aynı satırda oluşturabilirsin:
for (int y = 0; y < 4; y++) {
Console.Write("* ");
}
Console.WriteLine();
// Bunun çıktısı şu olacaktır:
// * * * * Burada, Console.Write() aynı satıra yazdırmaya devam eder ve sondaki Console.WriteLine() bir sonraki satıra geçer.
Görev
BaşlangıçVerilen genişlik ve yükseklikte yıldızlardan (*) oluşan bir dikdörtgen yazdıran bir program yazın.
Girdi: İki tam sayı: width ve height
Örneğin:
width = 5 ve height = 3 ise çıktı şöyle olmalıdır:
*****
*****
*****width = 4 ve height = 6 ise çıktı şöyle olmalıdır:
****
****
****
****
****
****Her döngü için yeni bir sayaç kullanın (örneğin, satırlar için i ve bir satırdaki yıldızlar için j) ve bunu height veya width ile karşılaştırın. height ve width değerlerini değiştirmeyin: her satırda width değerine yeniden ihtiyaç vardır.
Kendin dene
using System;
public class Program {
public static void Main(string[] args) {
int width = int.Parse(Console.ReadLine());
int height = int.Parse(Console.ReadLine());
// Kodunuzu aşağıya yazın
}
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerMod Alma OperatörüArtırma/AzaltmaSonradan Artırma/AzaltmaAritmetik Kısayollar7Temel Girdi/Çıktı
Temel ÇıktıString InterpolationGirdi OkumaParseÖzet - 120'ye KadarÖzet - True veya False5Operatörler Bölüm 2
Karşılaştırma OperatörleriMantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 39Döngüler
For DöngüsüWhile DöngüsüDo While DöngüsüBreakContinueİç İçe DöngülerSonsuz DöngüÖzet - Dinamik GirdiKendi başına pratik yap: Online C# derleyicisi