canlı ~/duyurular $
Algoritma müfredatı
ünite 3 · Tekrar Etmek · ders 3.4

İç içe döngü

Çarpım tablosu, satır-sütun, desen çizmek: dıştaki bir tur atarken içteki hepsini atar.

8 dk 11 / 22

Çarpım tablosunda her satır için 10 sütun var. Dış döngü satırı seçer, iç döngü o satırın sütunlarını gezer. Dış döngü bir tur attığında iç döngü baştan sona çalışır.

Kaç adım?

Dış 10, iç 10 → 100 işlem. Dış 1000, iç 1000 → bir milyon. İç içe döngü hızla pahalanır; ileride "karmaşıklık" dersinde bu sayıya geri döneceğiz.

Desen

* ** *** ****

Satır i'de i tane yıldız: dış döngü i = 1..4, iç döngü j = 1..i. İç döngünün sınırı dış sayaca bağlı — iç içe döngünün gücü burada.

akış şeması elips: başla/bitir · dikdörtgen: işlem · paralelkenar: girdi/çıktı · baklava: karar
flowchart TD
  A[i = 1] --> B{i #lt;= 4 ?}
  B -- Evet --> C[j = 1]
  C --> D{j #lt;= i ?}
  D -- Evet --> E[/* yaz/]
  E --> F[j = j + 1]
  F --> D
  D -- Hayır --> G[/satır sonu/]
  G --> H[i = i + 1]
  H --> B
  B -- Hayır --> I([Bitir])
sözde kod adımlar
1i ← 12İKEN i ≤ 43  j ← 14  İKEN j ≤ i5    YAZ "*"   // satır sonu yok6    j ← j + 17  DÖNGÜ SONU8  YAZ satır sonu9  i ← i + 110DÖNGÜ SONU
aynısı C# ile C#
1for (int i = 1; i <= 4; i++)2{3    for (int j = 1; j <= i; j++)4        Console.Write("*");5    Console.WriteLine();6}
adım adım izleme

Kutuların her adımdaki değeri. Kağıtta izleme tablosu tutarken tam bunu yaparsın.

#satırijekrannot
1 i = 1: j = 1 1 1 * 1 yıldız
2 i = 2: j = 1, 2 2 2 * / ** 2 yıldız
3 i = 3: j = 1..3 3 3 * / ** / *** 3 yıldız
4 i = 4: j = 1..4 4 4 … / **** 4 yıldız; toplam 10 iç tur
senin sıran

1'den 10'a çarpım tablosunu satır satır yazdır. Sonra deseni ters çevir (4,3,2,1 yıldız). İç döngünün sınırını nasıl değiştirdin?

Canlı Kod'da C# ile dene
kendini sına Dış döngü 5, iç döngü 8 tur atıyorsa iç döngünün gövdesi toplam kaç kez çalışır?
40. Her dış tur için iç döngü 8 kez: 5 × 8.
İşaret bu tarayıcıda kalır. XP için giriş yap — her ders +15 XP.