Langsung ke konten
Menelusuri kode

Pelajaran 2.3

Keputusan di dalam loop

7 menit · 7 langkah

  1. Langkah 1 dari 7 · Penjelasan

    Ada tiga cara keluar dari alur normal sebuah loop:

    • continue melompat ke putaran berikutnya.
    • break keluar dari loop ini saja. Kode setelah loop tetap jalan.
    • return keluar dari seluruh function, sekarang juga.

    Contoh: sebuah loop menjumlahkan [3, -1, 4, 0, 5]. Angka negatif dilewati dengan continue, dan loop berhenti di 0 dengan break. Jadi -1 dilewati, 5 tidak pernah dilihat, dan jumlahnya 3 + 4 = 7.

  2. Langkah 2 dari 7 · Tebak hasilnya

    Kode yang sama. Apa yang di-return untuk [2, 0, -3, 6]?

    function solution(nums) {  let sum = 0  for (let i = 0; i < nums.length; i++) {    if (nums[i] < 0) continue    if (nums[i] === 0) break    sum += nums[i]  }  return sum}
    1. 2
    2. 8
    3. 5
  3. Langkah 3 dari 7 · Tebak hasilnya

    break di dalam loop bersarang. Apa yang di-return untuk [[1, 0, 1], [1, 1]]?

    function solution(grid) {  let count = 0  for (let r = 0; r < grid.length; r++) {    for (let c = 0; c < grid[r].length; c++) {      if (grid[r][c] === 0) break      count++    }  }  return count}
    1. 3
    2. 1
    3. 4
  4. Langkah 4 dari 7 · Cari bug-nya

    Soal "Return index angka genap pertama, atau -1." Untuk [3, 4, 6] kode ini me-return 2, padahal harusnya 1. Ketuk baris yang salah.

    function solution(nums) {  let found = -1  for (let i = 0; i < nums.length; i++) {    if (nums[i] % 2 === 0) {      found = i      continue    }  }  return found}
  5. Langkah 5 dari 7 · Tebak hasilnya

    Soal "Return true kalau semua angka positif." Apa yang di-return kode ini untuk [-1, 4]?

    function solution(nums) {  let allPositive = true  for (let i = 0; i < nums.length; i++) {    if (nums[i] <= 0) {      allPositive = false    } else {      allPositive = true    }  }  return allPositive}
    1. true
    2. false
  6. Langkah 6 dari 7 · Susun kodenya

    Susun function yang me-return true kalau ada kata yang lebih dari 5 huruf. Pakai early return. Dua baris tidak termasuk.

    for (let i = 0; i < words.length; i++) {if (words[i].length > 5) return truereturn false}}return trueif (words[i].length > 5) return falsefunction solution(words) {
  7. Langkah 7 dari 7 · Ringkasan

    • continue lompat ke putaran berikutnya. break keluar dari satu loop. return keluar dari function.
    • break di loop bersarang hanya keluar dari loop dalam.
    • Flag "semua" atau "ada" hanya berubah satu arah. Early return biasanya lebih jelas daripada flag.

    Kartu pola

    Early return
    Kapan dipakai: Saat jawabannya sudah pasti di tengah loop. Return di dalam loop, dan taruh jawaban "tidak ketemu" setelah loop.
    for (const x of items) {  if (matches(x)) return true}return false