AWK - Loop

Bab ini menjelaskan loop AWK dengan contoh yang sesuai. Loop digunakan untuk menjalankan serangkaian tindakan secara berulang. Eksekusi loop terus berlanjut selama kondisi loop benar.

Untuk Loop

Sintaks dari for loop adalah -

Sintaksis

for (initialization; condition; increment/decrement)
   action

Awalnya, file forpernyataan melakukan tindakan inisialisasi, kemudian memeriksa kondisi. Jika kondisinya benar, ia menjalankan tindakan, kemudian melakukan operasi penambahan atau pengurangan. Eksekusi loop berlanjut selama kondisinya benar. Misalnya, contoh berikut mencetak 1 hingga 5 menggunakanfor putaran -

Contoh

[jerry]$ awk 'BEGIN { for (i = 1; i <= 5; ++i) print i }'

Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -

Keluaran

1
2
3
4
5

Sedangkan Loop

Itu whileloop terus mengeksekusi aksi sampai kondisi logika tertentu bernilai true. Berikut adalah sintakswhile putaran -

Sintaksis

while (condition)
   action

AWK mengecek dulu kondisinya; jika kondisinya benar, tindakan akan dijalankan. Proses ini berulang selama kondisi loop bernilai true. Misalnya, contoh berikut mencetak 1 hingga 5 menggunakanwhile putaran -

Contoh

[jerry]$ awk 'BEGIN {i = 1; while (i < 6) { print i; ++i } }'

Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -

Keluaran

1
2
3
4
5

Do-While Loop

Itu do-whileloop mirip dengan loop sementara, kecuali kondisi pengujian dievaluasi di akhir loop. Berikut adalah sintaksdo-whileputaran -

Sintaksis

do
   action
while (condition)

Di sebuah do-whileloop, pernyataan tindakan dijalankan setidaknya sekali bahkan ketika pernyataan kondisi bernilai false. Misalnya, contoh berikut mencetak 1 hingga 5 angka menggunakando-while putaran -

Contoh

[jerry]$ awk 'BEGIN {i = 1; do { print i; ++i } while (i < 6) }'

Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -

Keluaran

1
2
3
4
5

Pernyataan Istirahat

Seperti namanya, ini digunakan untuk mengakhiri eksekusi loop. Berikut adalah contoh yang mengakhiri pengulangan ketika jumlahnya menjadi lebih besar dari 50.

Contoh

[jerry]$ awk 'BEGIN {
   sum = 0; for (i = 0; i < 20; ++i) { 
      sum += i; if (sum > 50) break; else print "Sum =", sum 
   } 
}'

Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -

Keluaran

Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45

Pernyataan Lanjutan

Itu continuepernyataan digunakan di dalam loop untuk melompat ke iterasi berikutnya dari loop. Ini berguna ketika Anda ingin melewatkan pemrosesan beberapa data di dalam loop. Misalnya, contoh berikut menggunakancontinue pernyataan untuk mencetak bilangan genap antara 1 hingga 20.

Contoh

[jerry]$ awk 'BEGIN {
   for (i = 1; i <= 20; ++i) {
      if (i % 2 == 0) print i ; else continue
   } 
}'

Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -

Keluaran

2
4
6
8
10
12
14
16
18
20

Pernyataan Keluar

Ini digunakan untuk menghentikan eksekusi skrip. Ini menerima integer sebagai argumen yang merupakan kode status keluar untuk proses AWK. Jika tidak ada argumen yang diberikan,exitmengembalikan status nol. Berikut adalah contoh yang menghentikan eksekusi ketika jumlahnya menjadi lebih dari 50.

Contoh

[jerry]$ awk 'BEGIN {
   sum = 0; for (i = 0; i < 20; ++i) {
      sum += i; if (sum > 50) exit(10); else print "Sum =", sum 
   } 
}'

Keluaran

Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -

Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45

Mari kita periksa status pengembalian skrip.

Contoh

[jerry]$ echo $?

Saat menjalankan kode ini, Anda mendapatkan hasil sebagai berikut -

Keluaran

10