Saat pemrograman,untuk setiap perintah mengimplementasikan suatu loop di mana variabel loop mengasumsikan nilai dari satu atau lebih daftar. Dalam kasus paling sederhana ada satu variabel loop, varname , dan satu daftar, daftar , yaitu daftar nilai untuk ditetapkan varname . Itu tubuh argumen adalah skrip Tcl. Untuk setiap elemen daftar (dalam urutan dari awal hingga akhir),untuk setiap menugaskan isi dari elemen ke varname seolah-olahlindexperintah telah digunakan untuk mengekstrak elemen, kemudian memanggil interpreter Tcl untuk mengeksekusi tubuh .
Ringkasan
untuk setiap daftar nama varname
untuk setiap varlist1 list1 ? varlist2 list2 … ? tubuh
Diskusi
Dalam kasus umum, bisa ada lebih dari satu daftar nilai (misalnya, daftar1 dan daftar2 ), dan setiap daftar nilai dapat dikaitkan dengan daftar variabel loop (misalnya, varlist1 dan varlist2 ). Selama setiap iterasi loop, variabel masing-masing varlist ditugaskan nilai berturut-turut dari yang sesuai daftar . Nilai di masing-masing daftar digunakan dalam urutan dari awal hingga akhir, dan setiap nilai digunakan tepat satu kali. Jumlah iterasi loop cukup besar untuk menggunakan semua nilai dari semua daftar nilai. Jika daftar nilai tidak mengandung cukup elemen untuk setiap variabel pengulangannya dalam setiap iterasi, nilai kosong digunakan untuk elemen yang hilang.
Ituistirahat danterus pernyataan dapat dipanggil di dalam tubuh , dengan efek yang sama seperti pada untuk perintah. The foreach mengembalikan string kosong.
Contoh
Loop berikut digunakan saya dan j sebagai variabel loop untuk iterasi atas pasangan elemen dari daftar tunggal.
atur x {} foreach {i j} {a bc d e f} {lappend x $ j $ i} # Nilai x adalah "b a d c f e" # Ada 3 iterasi loop.
Loop berikutnya digunakan saya dan j untuk mengulang lebih dari dua daftar secara paralel.
set x {} foreach i {a b c} j {d e f g} {lappend x $ i $ j} # Nilai x adalah "a d b e c f {} g" # Ada 4 iterasi loop.
Kedua bentuk tersebut digabungkan dalam contoh berikut.
atur x {} foreach i {a b c} {j k} {d e f g} {lappend x $ i $ j $ k} # Nilai x adalah "a d e b f g c {} {}" # Ada 3 iterasi loop.
Catatan
Beberapa perintah terkait bekerja denganuntuk setiap termasuk:
- untuk (n)
- sementara (n)
- putus (n)
- lanjutkan (n)
Karena distribusi Linux dan tingkat rilis kernel bervariasi, gunakan pria perintah ( % pria ) untuk melihat bagaimana sebuah perintah digunakan secara khusus pada komputer khusus Anda.




