Penyataan Ulangan TypeScript
Artikel ini menerangkan penyataan ulangan dalam TypeScript.
YouTube Video
Penyataan for
dalam TypeScript
Penyataan for
dalam TypeScript adalah struktur gelung asas untuk melaksanakan operasi berulang. Dalam gelung for
, blok kod yang sama boleh dilaksanakan berulang kali berdasarkan bilangan kali tertentu atau keadaan tertentu.
Sintaks Asas
1for (initialization; condition; update) {
2 // Code to execute repeatedly while the condition is true
3}
- inisialisasi: Ini adalah bagian yang dieksekusi hanya sekali sebelum memulai loop. Menginisialisasikan variabel seperti penghitung loop.
- Kondisi (
kondisi
): Menentukan apakah loop berlanjut. Jika benar, terus ke loop, dan jika salah, keluar. - *Update (
update
): Jalankan di akhir setiap loop dan update loop counter.
Contoh 1: Gelung for
asas
Dalam contoh di bawah, ia mengeluarkan nombor dari 0
hingga 4
secara berurutan.
1for (let i = 0; i < 5; i++) {
2 console.log("The value of i is: " + i);
3}
4// Outputs:
5// The value of i is: 0
6// The value of i is: 1
7// The value of i is: 2
8// The value of i is: 3
9// The value of i is: 4
Contoh 2: Gelung for
dengan tatasusunan
Anda juga boleh menggunakan gelung for
untuk memproses elemen-elemen dalam tatasusunan secara berurutan.
1let fruits: string[] = ["apple", "banana", "cherry"];
2
3for (let i = 0; i < fruits.length; i++) {
4 console.log("Fruit: " + fruits[i]);
5}
6// Outputs:
7// Fruit: apple
8// Fruit: banana
9// Fruit: cherry
Contoh 3: Gelung for-in
Gelung for-in
digunakan untuk mengulang melalui sifat-sifat objek atau indeks tatasusunan dalam urutan.
1let car = { brand: "Toyota", model: "Corolla", year: 2020 };
2
3for (let key in car) {
4 console.log(key + ": " + car[key]);
5}
6// Outputs:
7// brand: Toyota
8// model: Corolla
9// year: 2020
Contoh 4: Gelung for-of
Gelung for-of
digunakan untuk mendapatkan nilai setiap elemen secara berurutan daripada objek yang boleh diiterasi seperti tatasusunan atau rentetan.
1let colors: string[] = ["red", "green", "blue"];
2
3for (let color of colors) {
4 console.log("Color: " + color);
5}
6// Outputs:
7// Color: red
8// Color: green
9// Color: blue
Contoh 5: Gelung for
Tertanam
Ia juga boleh menggunakan gelung for
di dalam gelung for
lain, yang dikenali sebagai gelung bersarang. Ini membolehkan anda mencipta gelung ganda, antara lain.
1for (let i = 0; i < 3; i++) {
2 console.log("Outer loop i: " + i);
3 for (let j = 0; j < 2; j++) {
4 console.log(" Inner loop j: " + j);
5 }
6}
7// Outputs:
8// Outer loop i: 0
9// Inner loop j: 0
10// Inner loop j: 1
11// Outer loop i: 1
12// Inner loop j: 0
13// Inner loop j: 1
14// Outer loop i: 2
15// Inner loop j: 0
16// Inner loop j: 1
Ringkasan
- Pernyataan
for
melaksanakan pemprosesan berulang berdasarkan kiraan atau syarat yang ditentukan. for-in
digunakan untuk mendapatkan sifat-sifat objek atau indeks tatasusunan.for-of
mendapatkan nilai elemen daripada objek yang boleh diiterasi seperti tatasusunan.- Pemprosesan berulang yang kompleks juga boleh dilakukan dengan gelung
for
tertanam.
Penyataan for
dalam TypeScript memberikan pemprosesan ulangan yang berkuasa dan fleksibel, serupa dengan gelung lain.
Pernyataan While dalam TypeScript
Dalam TypeScript, pernyataan while
adalah satu struktur gelung yang melaksanakan proses berulang selagi keadaan yang ditentukan adalah true
. Sama seperti gelung for
, gelung while
sesuai untuk kes-kes di mana bilangan ulangan tidak ditentukan terlebih dahulu, atau apabila anda ingin mengawal pengulangan berdasarkan suatu keadaan.
Sintaks Asas
1while (condition) {
2 // Code to execute repeatedly while the condition is true
3}
- Keadaan: Keadaan yang menentukan bila gelung dilaksanakan. Gelung akan terus berjalan selagi keadaan ini adalah
true
, dan berhenti apabila ia menjadifalse
.
Contoh 1: Gelung while
Asas
Dalam contoh di bawah, ia terus menghasilkan nilai i
selagi i
kurang daripada 5.
1let i: number = 0;
2
3while (i < 5) {
4 console.log("The value of i is: " + i);
5 i++;
6}
7// Outputs:
8// The value of i is: 0
9// The value of i is: 1
10// The value of i is: 2
11// The value of i is: 3
12// The value of i is: 4
Dalam contoh ini, gelung akan berakhir apabila i
menjadi 5 atau lebih kerana keadaan menjadi false
.
Contoh 2: Contoh Gelung Tak Berpenghujung
Jika keadaan dalam gelung while
sentiasa true
, ia boleh menjadi gelung tak berpenghujung. Ini biasanya menyebabkan program gagal berhenti seperti yang dimaksudkan, jadi berhati-hatilah.
1let x: number = 0;
2
3while (true) {
4 console.log("The value of x is: " + x);
5 x++;
6 if (x >= 5) {
7 break; // Exit the loop when the condition is met
8 }
9}
10// Outputs:
11// The value of x is: 0
12// The value of x is: 1
13// The value of x is: 2
14// The value of x is: 3
15// The value of x is: 4
Anda boleh menggunakan pernyataan break
untuk memaksa keluar dari gelung apabila suatu keadaan dipenuhi.
Contoh 3: Gelung do-while
Gelung do-while
ialah satu struktur di mana proses gelung dilaksanakan sekurang-kurangnya sekali. Oleh kerana keadaan dinilai selepas proses, proses itu tetap berjalan sekurang-kurangnya sekali walaupun keadaan adalah false
.
1let j: number = 5;
2
3do {
4 console.log("The value of j is: " + j);
5 j++;
6} while (j < 5);
7// Outputs: The value of j is: 5
Dalam contoh ini, j
adalah 5
sejak awal, dan j < 5
adalah false
, tetapi dalam gelung do-while
, ia tetap berjalan sekurang-kurangnya sekali tanpa mengira keadaan.
Ringkasan
- Gelung
while
mengulangi pemprosesan selagi keadaan adalahtrue
. - Jika keadaan penamatan gelung tidak jelas, anda perlu berhati-hati terhadap gelung tak berpenghujung.
- Gelung
do-while
berbeza daripada gelungwhile
biasa kerana pemprosesan dilaksanakan sekurang-kurangnya sekali.
Pernyataan while
dalam TypeScript berguna untuk pemprosesan gelung dengan bilangan ulangan yang tidak pasti atau apabila penilaian keadaan secara dinamik diperlukan.
break
dan continue
Anda boleh menggunakan break
dan continue
dalam gelung.
break
digunakan untuk menamatkan gelung lebih awal.continue
digunakan untuk melangkau ulang kitaran semasa dan bergerak ke kitaran seterusnya.
Contoh penggunaan break
1for (let i = 0; i < 10; i++) {
2 if (i === 5) {
3 break; // Exits the loop when i is 5
4 }
5 console.log(i);
6}
7// Outputs 0, 1, 2, 3, 4
8
9let i = 0;
10
11while (i < 10) {
12 if (i === 5) {
13 break; // Ends the loop when i is 5
14 }
15 console.log(i++);
16}
17// Outputs 0, 1, 2, 3, 4
Dalam kes ini, break
dilaksanakan apabila i
menjadi 5. Akibatnya, nombor dari 0
hingga 4
dipaparkan.
Contoh penggunaan continue
1for (let i = 0; i < 5; i++) {
2 if (i === 2) {
3 continue; // Skips when i is 2
4 }
5 console.log(i);
6}
7// Outputs 0, 1, 3, 4
8
9let i = 0;
10
11while (i < 5) {
12 i++;
13 if (i === 3) {
14 continue; // Skips when i is 3
15 }
16 console.log(i);
17}
18// Outputs 1, 2, 4, 5
Dalam kes ini, continue
dilaksanakan apabila i
ialah 2
. Akibatnya, nombor kecuali 2
dipaparkan.
Gelung bersarang dalam TypeScript
Gelung bersarang ialah struktur di mana gelung digunakan di dalam gelung yang lain. Dalam TypeScript, pembinaan gelung seperti for
, while
, dan do-while
disokong. Dengan menggunakan gelung bersarang, anda boleh memproses tatasusunan dua dimensi (matriks) dan merampingkan pemprosesan berdasarkan pelbagai syarat.
Sintaks Asas
Sintaks asas bagi gelung bersarang adalah seperti berikut.
1for (let i: number = 0; i < n; i++) {
2 for (let j: number = 0; j < m; j++) {
3 // Processing for the inner loop
4 }
5}
Untuk setiap pelaksanaan gelung luar, gelung dalam menyelesaikan semua ulangkitarannya. Struktur ini sangat berguna apabila mengendalikan pelbagai gelung atau struktur data.
Contoh gelung bersarang dalam TypeScript
Melalui tatasusunan dua dimensi
Gelung bersarang sering digunakan apabila memanipulasi struktur data pelbagai dimensi seperti tatasusunan dua dimensi. Dalam contoh berikut, elemen tatasusunan dua dimensi dilalui, dan nilainya dipaparkan di konsol.
1const matrix: number[][] = [
2 [1, 2, 3],
3 [4, 5, 6],
4 [7, 8, 9]
5];
6
7for (let row: number = 0; row < matrix.length; row++) {
8 for (let col: number = 0; col < matrix[row].length; col++) {
9 console.log(`matrix[${row}][${col}] = ${matrix[row][col]}`);
10 }
11}
12// Output
13// matrix[0][0] = 1
14// matrix[0][1] = 2
15// matrix[0][2] = 3
16// matrix[1][0] = 4
17// matrix[1][1] = 5
18// matrix[1][2] = 6
19// matrix[2][0] = 7
20// matrix[2][1] = 8
21// matrix[2][2] = 9
Dalam contoh ini, kita sedang melalui tatasusunan dua dimensi matrix
. Gelung luar mengendalikan baris, dan gelung dalam mengendalikan lajur, memaparkan setiap elemen dalam susunan yang betul.
Gabungan dua tatasusunan
Seterusnya, kami memperkenalkan contoh pengiraan semua gabungan dua tatasusunan. Sebagai contoh, anda boleh mengambil satu elemen daripada setiap dua tatasusunan dan menghasilkan semua pasangan yang mungkin.
1const array1: string[] = ['A', 'B', 'C'];
2const array2: number[] = [1, 2, 3];
3
4for (let i: number = 0; i < array1.length; i++) {
5 for (let j: number = 0; j < array2.length; j++) {
6 console.log(`Pair: (${array1[i]}, ${array2[j]})`);
7 }
8}
9// Output
10// Pair: (A, 1)
11// Pair: (A, 2)
12// Pair: (A, 3)
13// Pair: (B, 1)
14// Pair: (B, 2)
15// Pair: (B, 3)
16// Pair: (C, 1)
17// Pair: (C, 2)
18// Pair: (C, 3)
Dalam contoh ini, semua pasangan antara tatasusunan rentetan array1
dan tatasusunan nombor array2
dicipta. Gelung luar mengeluarkan elemen daripada array1
, dan gelung dalam mengeluarkan elemen daripada array2
, memaparkan setiap pasangan.
Menjana koordinat dengan gelung tiga kali
Dengan menggunakan gelung bersarang tiga kali, anda boleh menjana koordinat dalam ruang tiga dimensi, sebagai contoh.
1for (let x: number = 0; x < 3; x++) {
2 for (let y: number = 0; y < 3; y++) {
3 for (let z: number = 0; z < 3; z++) {
4 console.log(`Coordinate: (${x}, ${y}, ${z})`);
5 }
6 }
7}
8// Output
9// Coordinate: (0, 0, 0)
10// Coordinate: (0, 0, 1)
11// Coordinate: (0, 0, 2)
12// ...
13// Coordinate: (2, 2, 1)
14// Coordinate: (2, 2, 2)
Dengan cara ini, penggunaan gelung bersarang tiga kali membolehkan anda menjana koordinat dalam ruang tiga dimensi dengan mudah.
Prestasi gelung bersarang
Gelung bersarang adalah mudah, tetapi kos pengiraan meningkat dengan cepat apabila kedalaman gelung meningkat. Sebagai contoh, jika terdapat n
ulangan gelung luar dan m
ulangan gelung dalam, jumlah keseluruhan ulangan akan menjadi n * m
. Apabila ini menjadi lebih bersarang, kerumitan pengiraan meningkat secara eksponen, yang mungkin menjejaskan prestasi program.
Di bawah adalah kerumitan pengiraan apabila melalui tiga tatasusunan.
1const array1: number[] = [1, 2, 3];
2const array2: number[] = [4, 5, 6];
3const array3: number[] = [7, 8, 9];
4
5for (let i: number = 0; i < array1.length; i++) {
6 for (let j: number = 0; j < array2.length; j++) {
7 for (let k: number = 0; k < array3.length; k++) {
8 console.log(`Combination: (${array1[i]}, ${array2[j]}, ${array3[k]})`);
9 }
10 }
11}
Dalam kes ini, anda perlu mengira array1.length * array2.length * array3.length
, menghasilkan 3 * 3 * 3 = 27
ulangan untuk memproses semua gabungan.
Pengoptimuman gelung bersarang
Apabila menggunakan gelung bersarang, anda boleh meningkatkan prestasi dengan mempertimbangkan pengoptimuman berikut.
- Perkenalkan penamatan awal: Keluar daripada gelung lebih awal apabila matlamat tercapai untuk mengelakkan ulangan yang tidak perlu.
- Cache pembolehubah gelung: Simpan terlebih dahulu nilai pembolehubah yang digunakan dalam gelung (terutamanya panjang dan julat) untuk mengurangkan kos pengiraan setiap kali.
- Ubah struktur data: Menyemak semula struktur tatasusunan dan objek boleh menjadi berkesan untuk mempercepatkan proses berulang tertentu.
Kesimpulan
Gelung bersarang adalah alat yang ampuh dalam pemprosesan data kompleks dan algoritma. Walau bagaimanapun, apabila kedalaman gelung dan bilangan ulangan meningkat, isu prestasi mungkin timbul. Dengan pengoptimuman yang sesuai dan reka bentuk yang teliti, anda boleh menggunakan gelung bersarang dengan berkesan dalam TypeScript.
Anda boleh mengikuti artikel di atas menggunakan Visual Studio Code di saluran YouTube kami. Sila lihat juga saluran YouTube kami.