Nested Loop
Termasuk bagian Dasar-Dasar dalam perjalanan GDScript di Coddy. Pelajaran 49 dari 92.
Perulangan bersarang adalah perulangan di dalam perulangan lain. Untuk setiap iterasi perulangan luar, perulangan dalam menjalankan semua iterasinya:
var rows := 3
var cols := 2
for i in range(rows):
print("Outer: ", i)
for j in range(cols):
print(" Inner: ", j)Outer: 0
Inner: 0
Inner: 1
Outer: 1
Inner: 0
Inner: 1
Outer: 2
Inner: 0
Inner: 1Blok bagian dalam diindentasi dua tingkat. Blok ini dijalankan sebanyak rows x cols = 3 x 2 = 6 kali secara total. j dimulai lagi dari 0 setiap kali perulangan luar dijalankan, sementara rows dan cols tetap sama dan hanya memberi tahu perulangan kapan harus berhenti.
Kedua perulangan memerlukan nama variabel yang berbeda. Menulis for i di dalam for i lainnya adalah error yang dilaporkan sebelum program dijalankan.
Perulangan bersarang berguna untuk baris dan kolom. print() selalu mengakhiri baris, jadi untuk mencetak satu baris bintang, susun dulu dalam string lalu cetak setelah perulangan bagian dalam selesai:
for row in range(2):
var line := ""
for col in range(3):
line += "*"
print(line)***
***Perulangan luar berjalan satu kali untuk setiap baris, dan perulangan dalam menambahkan satu bintang untuk setiap kolom. break di dalam perulangan dalam hanya menghentikan perulangan dalam: perulangan luar melanjutkan ke iterasi berikutnya.
Tantangan
MudahProgram membaca dua bilangan bulat: rows dan cols.
Gunakan perulangan bersarang untuk mencetak persegi panjang bintang (*) dengan rows baris dan cols bintang di setiap baris.
Untuk input 3 dan 4, outputnya adalah:
****
****
****Gunakan pencacah baru untuk setiap perulangan (misalnya row untuk baris dan col untuk bintang dalam satu baris), lalu bandingkan dengan rows atau cols. Jangan ubah rows dan cols itu sendiri: setiap baris memerlukan cols lagi.
Coba sendiri
extends Node
func _ready():
var rows := int(OS.read_string_from_stdin())
var cols := int(OS.read_string_from_stdin())
# Perulangan luar: satu iterasi untuk setiap baris
# Perulangan dalam: tambahkan satu bintang untuk setiap kolom
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Bagian 1
Operator AritmetikaPembagian Bilangan BulatOperator ModuloPintasan AritmetikaRingkasan: Matematika SederhanaOperator Perbandingan7Dasar input dan output
OutputOutput dengan variabelPemformatan stringInputKonversi tipeRekap: Sampai 120Rekap: Benar atau Salah10Fungsi
Deklarasikan FungsiArgumenNilai KembaliTipe PengembalianRangkuman, Fungsi SigmaRangkuman, Fungsi ValidasiNilai Default5Operator Bagian 2
Operator Logika Bagian 1Operator Logika Bagian 2Ulasan: Logika SederhanaOperator Logika Bagian 3Operator Ternary8Kalkulator Pembagi Tagihan
Pesan SambutanMenerima Input3Variabel Bagian 2
Deklarasi TipeInferensi TipeKonstantaRangkuman: Inisialisasi VariabelKonversi Tipe6Pengambilan Keputusan
Pernyataan IfIf - ElseRangkuman: Kalkulator SederhanaIf - Else BersarangPernyataan Match9Perulangan
For LoopWhile LoopBreakContinueRingkasan: FaktorialFungsi rangeNested LoopRingkasan: Input DinamisLatihan sendiri: Compiler GDScript online