Gunakan perulangan untuk mengulangi pernyataan

Selesai

Anda telah sampai pada titik dalam program Anda di mana Anda perlu melakukan sekelompok pernyataan lebih dari satu kali. Anda mungkin bekerja dengan struktur jenis daftar yang perlu Anda iterasi. Atau, Anda memiliki kebutuhan umum untuk mengulangi operasi sampai kondisi tertentu terpenuhi. Dalam skenario ini, Anda dapat menggunakan perulangan.

Perulangan

Sebuah perulangan berulang pada rentang nilai. Untuk setiap nilai, kode melakukan sesuatu, seperti mencetak hasil di layar atau menggunakan nilai dalam operasi. F# memiliki tiga jenis perulangan yang dapat Anda gunakan:

  • for...in: Konstruksi for...in mengasumsikan bahwa Anda memiliki koleksi enumerable yang dapat Anda ulangi. Konstruk ini melakukan pengulangan atas setiap nilai dalam koleksi.
  • for...to: Perulangan for...to dimulai dan diakhiri di mana perulangan ini berulang. Pengulangan sampai mencapai nilai variabel perulangan.
  • while...do: Perulangan while...do tidak berpusat pada koleksi yang dapat dijumlahkan seperti dua konstruksi pertama. Sebaliknya, ia mengulang hingga kondisi terpenuhi.

Gunakan for...in loop untuk setiap nilai dalam koleksi

Konstruksi for...in beroperasi pada koleksi yang dapat dihitung. Konstruksi ini mengimplementasikan System.Collections.IEnumerable dan mencakup daftar, urutan, larik, dan tipe lainnya. Berikut sintaks untuk perulangan for...in:

for <pattern> in <enumerable-expression> do
  <body-expression>

Sangat penting untuk memahami beberapa kata kunci:

  • Pola: Pola dapat berupa item saat ini atau tupel. Contohnya adalah pengulangan pada suatu urutan. Kode berikut adalah contoh ketika polanya adalah nilai saat ini i. for mengulangi list daftar, lalu mencetak setiap nilai dalam koleksi:

    let list = [1; 2; 3; 4; 5]
    for i in list do
       printf "%d " i
    
  • Ekspresi Enumerable: Ekspresi enumerable adalah apa yang Anda ulangi. Ekspresi ini mungkin daftar atau urutan.

  • Ekspresi tubuh: Ekspresi tubuh adalah tempat Anda melakukan tugas yang ingin Anda lakukan, seperti mencetak atau melakukan penghitungan.

Gunakan for...to loop hingga variabel perulangan muncul

Konstruksi for...to sedikit berbeda dari perulangan for...in. Variabel perulangan for...to merupakan batas tempat untuk menghentikan pengulangan. Berikut tampilan sintaksnya:

for <identifier = start> [ to | downto ] <finish> do
    <body-expression>

Sangat penting untuk memahami komponen sintaks:

  • identifier = start: Sintaks ini adalah penugasan. Anda biasanya memutuskan variabel apa yang ingin Anda lacak sebagai bagian dari pengulangan dan nilai apa yang seharusnya dimulai.
  • [to | downto]: Anda dapat memilih di antara dua kata kunci yang berbeda. to berarti perulangan berulang ke nomor itu. Jika Anda menggunakan downto, nilai pengidentifikasi Anda berkurang hingga mencapai angka tersebut.

Berikut ini contoh penggunaan perulangan for...to:

for i = 1 to 10 do
  printfn "%i " i  // prints 1 2 3 4 5 6 7 8 9 10

Perulangan ini mencetak semua nilai antara 1 dan 10, termasuk 10. Mari kita lihat juga contoh yang menggunakan for...downto konstruksi. Konstruksi ini bekerja mirip dengan for...to, tetapi sebaliknya. Kode berikut menunjukkan bagaimana Anda bisa mencetak nilai dari 10 ke bawah ke 1, termasuk 1:

for i = 10 downto 1 do
  printfn "%i" i  // prints 10 9 8 7 6 5 4 3 2 1

Gunakan while...do loop sampai kondisi terpenuhi

Konstruksinya while...do berbeda dari for...in konstruksi dan for...to . while...do tidak mengulangi koleksi. Sebagai gantinya, gunakan perulangan while...do jika Anda memiliki logika yang perlu diulang hingga suatu kondisi terpenuhi. Contohnya adalah menerima argumen baris perintah hingga pengguna memasukkan keluar.

Kode ini menunjukkan sintaks dari konstruksi while...do:

while <test-expression> do
  <body-expression>

Game menebak adalah contoh penggunaan konstruksi while...do:

open System

let mutable quit = false
let no = 11
while not quit do
   printf "Guess a number: "
   let guess = Console.ReadLine() 
   let guessNo = int guess
   if guessNo = no then
      quit <- true
      printfn "You guessed correctly %i is the secret number" no
   else
      printfn "%i is incorrect" guessNo

Kode menjalankan serangkaian pernyataan hingga variabel quit memiliki nilai true. Dengan mengatur nilai quit ke true, saat pengguna menebak dengan benar, perulangan berakhir.