Gelung cepat masuk: Bagaimana menggunakannya dan Mengapa?

Dalam artikel ini, anda akan mengetahui tentang gelung masuk, kes penggunaan dan variannya.

Gelung masuk digunakan untuk menjalankan sekumpulan tugas untuk beberapa kali. Gelung ini mengulangi urutan apa pun seperti item dalam array, julat, atau watak dalam rentetan.

Kami juga menggunakan gelung masuk untuk melakukan beberapa proses berulang untuk jangka masa yang tetap.

Mengapa kita memerlukan gelung masuk?

Bayangkan seseorang menyuruh anda menulis program yang menghasilkan Hello, World! di skrin. Penyelesaian anda adalah:

 cetak ("Helo, Dunia!")

Bagaimana jika, mereka berubah pikiran dan menyuruh anda menulis program yang menghasilkan Hello, World! di skrin selama lima kali … Tanpa pengetahuan mengenai kaedah, penyelesaian anda mungkin:

 cetak ("Hello, World!") print ("Hello, World!") print ("Hello, World!") print ("Hello, World!") cetak ("Hello, World!")

Hmm. Nampaknya memakan masa untuk menulis kod serupa sebanyak lima kali untuk menyelesaikan kerja yang sama. Sekiranya demikian, apa yang akan anda lakukan sekiranya seseorang meminta anda menulis program yang menghasilkan Hello, World! di skrin selama seratus atau bahkan berjuta-juta kali?

Satu penyelesaian naif adalah dengan menulis printpernyataan untuk sebilangan kali. Kedengaran gila, bukan? Tetapi ada penyelesaian yang lebih baik untuk ini dengan penggunaan for-ingelung dengan beberapa baris kod seperti:

 for i in 1… 100 ( //outputs Hello world for 100 times in the screen print("Hello, World!") ) 

Jangan risau tentang sintaksnya, kami akan menerokainya di bawah.

Sintaks Gelung Masuk

Anda boleh membuat for in loop di Swift sebagai:

 untuk di () 

Gelung di atas berulang pada jarak dan kita dapat mengakses setiap elemen yang dikembalikan dari julat dalam pemboleh ubah. Sekiranya anda tidak tahu mengenai jarak, anda boleh menyemak artikel: Swift Ranges.

Bagaimana ia berfungsi?

  • Urutan yang berulang adalah a.
  • The ditetapkan ke angka pertama dalam julat, dan pernyataan di dalam gelung dilaksanakan.
  • Setelah penyataan dijalankan, si dikemas kini untuk mengandungi nilai kedua dalam dan pernyataan itu dilaksanakan lagi.
  • Proses ini berterusan sehingga akhir julat dicapai dan gelung berhenti.

Contoh 1: Cara gelung masuk berfungsi di Swift

 for i in 1… 3 ( print("Hello world!. Value is (i)") ) 

Semasa anda menjalankan program, outputnya adalah:

Hai dunia!. Nilai adalah 1 Hello world !. Nilai adalah 2 Hello world !. Nilai adalah 3

Dalam program di atas, urutan yang diulangi adalah antara 1 hingga 3.

Nilai i ditetapkan ke nombor pertama dalam julat (1), dan diperbaharui ke nombor julat berikutnya pada setiap lelaran. Proses ini berterusan sehingga akhir julat (3) tercapai.

Langkah pelaksanaan gelung masuk
Pengulangan Nilai dikembalikan dari julat (i) Pengeluaran
1 1 Hai dunia!. Nilai adalah 1
2 2 Hai dunia!. Nilai adalah 2
3 3 Hai dunia!. Nilai adalah 3

Membuang nilai julat dalam gelung masuk

Sekiranya anda tidak menggunakan nilai julat di dalam gelung, anda boleh membuang menggunakan _(garis bawah) dalam Swift sebagai:

 untuk _ dalam () 

Contoh 2: Membuang nilai julat dalam gelung masuk

 // This example neglects value and uses half open range operator for _ in 1… <3 ( print("Hello world!") ) 

Semasa anda menjalankan program, outputnya adalah:

Hai dunia! Hai dunia!

Dalam program di atas, urutan yang berulang kali berkisar antara 1 hingga 2 kerana penggunaan operator jarak terbuka setengah (… <) yang merangkumi batas bawah (1) tetapi bukan batas atas (3).

_mengabaikan nilai dari julat (1) dan pernyataan cetak dilaksanakan. Pernyataan cetak dipanggil lagi untuk lelaran seterusnya dan prosesnya berakhir kerana 2 adalah nilai terakhir dalam julat.

Langkah pelaksanaan gelung masuk tanpa nilai julat
Pengulangan Nilai Dikembalikan dari Julat Pengeluaran
1 Dibuang Hai dunia!
2 Dibuang Hai dunia!

gelung masuk untuk selang masa tetap menggunakan langkah

Sekiranya anda mahukan gelung yang bertambah dengan beberapa nilai tetap dalam setiap lelaran, bukannya julat, anda harus menggunakan kaedah langkah.

Contoh 3: gelung masuk menggunakan kaedah langkah

 let interval = 2 for i in stride(from: 1, to: 10, by: interval) ( print(i) ) 

Semasa anda menjalankan program, outputnya adalah:

 1 3 5 7 9 

Dalam program di atas, stridefungsi mengembalikan urutan nombor: 1, 3, 5, 7, 9.

Nilai i diatur ke nombor pertama dari urutan (1), dan pernyataan cetak di dalam gelung dijalankan yang mengeluarkan "1" di konsol.

Setelah penyataan dilaksanakan, nilai i dikemas kini ke nilai lain (3) dan pernyataan cetak dipanggil lagi. Proses ini berterusan sehingga semua elemen urutan diakses.

Langkah-langkah pelaksanaan gelung masuk menggunakan langkah
Nilai Keadaan (Nilai <Tamat) i (Keluaran)
1 1 <10 (benar) 1
1 + 2 = 3 3 <10 (benar) 3
1 + 2 * 2 = 5 5 <10 (benar) 5
1 + 3 * 2 = 7 7 <10 (benar) 7
1 + 4 * 2 = 9 9 <10 (benar) 9
1 + 5 * 2 = 11 11 <10 (palsu) Berhenti

Bagaimana cara mengakses elemen koleksi menggunakan gelung masuk?

Katakan anda mempunyai pelbagai rentetan seperti di bawah. Sekiranya anda tidak mengetahui tentang array, fikirkan array sebagai wadah tunggal yang dapat menyimpan lebih dari satu nilai. Untuk penjelasan yang lebih terperinci, lihat Swift Arrays.

 biarkan programLanguages ​​= ("Swift", "Java", "Go", "JavaScript", "Kotlin", "Python")

What if someone told you to print all the programming languages?

A way is to access those elements using index as programmingLanguages(0), programmingLanguages(1)… and so on till you get all the elements. But this is too tedious.

Here comes for-in loop to the rescue. You can iterate using for in loop as:

Example 4: Accessing elements of an array (collection) using for-in loop

 let programmingLanguages = ("Swift", "Java", "Go", "JavaScript", "Kotlin", "Python") for language in programmingLanguages ( print(language) ) 

When you run the program, the output will be:

 Swift Java Go JavaScript Kotlin Python 

In the above program, the sequence being iterated over is an array of strings.

The value of language is set to the first element of the array, and the print statement inside the loop is executed which outputs "Swift" in the console.

After the statement is executed, language is updated with the next element of the array and the print statement is called again. This process continues until the last element of array is accessed.

Example 5: Accessing elements of a string (collection) using for-in loop

Since, in Swift, strings are also collection, you can access each character in a string using for loop.

 for value in "I♥Swift!" ( print(value) ) 

When you run the program, the output will be:

 I ♥ S w i f t ! 

How to access indices of a collection using for-in loop?

If you want to access the index of the array (position of elements in an array i.e. 0, 1, 2), you need to use enumerated method as:

Example 6: Accessing indices of an array using for-in loop

 let programmingLanguages = ("Swift", "Java", "Go", "JavaScript", "Kotlin", "Python") for (index, language) in programmingLanguages.enumerated() ( print("(index):(language)") ) 

When you run the program, the output will be:

 0:Swift 1:Java 2:Go 3:JavaScript 4:Kotlin 5:Python 

Here, the enumerated method returns a tuple (Int, String) composed of the index (Int) and the value (String) for each item in the array. For example: (0, Swift), (1, Java)…

Using for-in loop, you can access these items in a tuple one by one. If you don't know about Tuple, you can simply think it as a container that can hold value of different types. For more detailed explanation, see Swift Tuples .

How to filter elements using where clause in a for-in loop?

You can also filter contents from for in loop using where clause as

 for value in "I♥Swift!" where value != "!" ( print(value) //removes exclamation sign ) 

When you run the program, the output will be:

 I ♥ S w i f t 

In the above program, the sequence being iterated over is string (collection of characters).

nilai ditetapkan ke watak pertama rentetan dan diperiksa dengan keadaan di mana. Sekiranya keadaan kembali true, blok di dalam gelung (pernyataan cetak) dijalankan yang mengeluarkan "I" di konsol.

Setelah penyataan dijalankan, nilai akan dikemas kini ke watak rentetan seterusnya dan keadaan diperiksa lagi. Sekiranya keadaan kembali false, ia tidak akan melaksanakan blok dan nilainya dikemas kini ke watak seterusnya.

Proses ini berterusan sehingga watak terakhir rentetan diakses.

Tapis menggunakan langkah pelaksanaan gelung masuk
Pengulangan nilai nilai! = "!" Pengeluaran
1 Saya benar Saya
2 benar
3 S benar S
4 w benar w
5 i benar i
6 f benar f
7 t benar t
8 ! salah

Artikel menarik...