Terus ke kandungan
IGCSE·Tuition
Sains Komputer · Pelajaran

Jejak gelung terkawal syarat (condition-controlled loop)

Sesetengah gelung tidak tahu berapa kali ia akan berjalan, dan itulah yang menjadikannya mudah tersilap.

Dalam halaman ini
  1. Bila setiap gelung menyemak syaratnya?
  2. Contoh 1: gelung WHILE
  3. Contoh 2: gelung REPEAT
  4. Kesilapan yang perlu diawasi
  5. Semak sendiri
  6. Seterusnya

Gelung terkawal syarat mengulang sehingga satu syarat menyuruhnya berhenti. Bilangan pusingan tidak ditetapkan lebih awal. Pseudokod gaya Cambridge mempunyai dua bentuk: WHILE dengan ENDWHILE, dan REPEAT dengan UNTIL.

Pelajaran ini menyusuli menjejak gelung terkawal bilangan dalam pengulangan dan tatasusunan. Idea barunya ialah ujian, bukan pembilang, yang menentukan bila gelung tamat.

Bila setiap gelung menyemak syaratnya?

Gelung WHILE menguji dahulu. Jika ujian palsu pada semakan pertama lagi, isi gelung tidak pernah berjalan.

Gelung REPEAT dengan UNTIL menjalankan isi dahulu dan menguji kemudian. Isi gelung sentiasa berjalan sekurang-kurangnya sekali. Gelung berhenti apabila syarat UNTIL ialah benar, iaitu terbalik daripada WHILE.

Untuk setiap jejak, tambah satu lajur untuk ujian dan tulis benar atau palsu setiap kali ia disemak.

Contoh 1: gelung WHILE

Balance ← 100
Years ← 0
WHILE Balance < 150 DO
   Balance ← Balance + 20
   Years ← Years + 1
ENDWHILE
OUTPUT Years, Balance
Ujian: Balance < 150Balance selepasYears selepas
100 < 150 benar1201
120 < 150 benar1402
140 < 150 benar1603
160 < 150 palsugelung tamat

Outputnya ialah 3, 160. Ujian terakhir palsu, jadi tiada pusingan keempat.

Contoh 2: gelung REPEAT

N ← 64
Steps ← 0
REPEAT
   N ← N DIV 2
   Steps ← Steps + 1
UNTIL N < 5
OUTPUT Steps, N

DIV ialah pembahagian nombor bulat.

PusinganN selepasSteps selepasUjian: N < 5
1321palsu, ulang
2162palsu, ulang
383palsu, ulang
444benar, berhenti

Outputnya ialah 4, 4. Jika N bermula pada 3, gelung WHILE dengan ujian yang sama ditulis sebagai WHILE N >= 5 akan berjalan sifar kali, tetapi gelung REPEAT ini tetap berjalan sekali dan menukar N kepada 1.

Kesilapan yang perlu diawasi

Kesilapan biasa ialah membaca UNTIL sebagai “teruskan selagi”.

Jawapan yang salah: “UNTIL N < 5 bermaksud gelung berterusan selagi N kurang daripada 5, jadi ia berhenti serta-merta.”

Pelajar menganggap syarat UNTIL seperti syarat WHILE.

Pembetulannya: baca UNTIL N < 5 sebagai “berhenti sebaik sahaja N kurang daripada 5”. Pada awal, N ialah 64 dan tidak kurang daripada 5, jadi gelung diteruskan. Tulis perkataan “berhenti apabila” di jidar bersebelahan setiap UNTIL.

Semak sendiri

1. Apakah nilai akhir X dan bilangan pusingan?

X ← 5
Passes ← 0
WHILE X > 0 DO
   X ← X - 2
   Passes ← Passes + 1
ENDWHILE
Lihat jawapan

X menjadi 5, 3, 1, kemudian -1. Keputusan ujian: 5 > 0 benar, 3 > 0 benar, 1 > 0 benar, -1 > 0 palsu. Gelung berjalan 3 pusingan dan X ialah -1.

2. Apakah Count pada akhirnya?

Count ← 10
REPEAT
   Count ← Count + 1
UNTIL Count >= 10
Lihat jawapan

Isi gelung berjalan sekali sebelum sebarang ujian, jadi Count menjadi 11. Kemudian 11 >= 10 benar dan gelung berhenti. Count ialah 11.

3. Mengapa gelung ini tidak pernah tamat?

N ← 10
WHILE N <> 0 DO
   N ← N - 3
ENDWHILE
Lihat jawapan

N mengambil nilai 10, 7, 4, 1, -2, -5 dan seterusnya. Ia melangkaui 0 dan tidak pernah sama dengannya, jadi N <> 0 kekal benar selama-lamanya. Menggunakan WHILE N > 0 akan membetulkannya.

Seterusnya

Gelung tersilap dengan cara yang boleh diramal di hujungnya, iaitu subjek membaiki ralat off-by-one. Untuk melihat syarat berubah langkah demi langkah, gunakan pelatih jejak pseudokod, yang menghentikan gelung tidak terkawal pada had keselamatan.

Seorang guru dalam tuisyen Computer Science boleh memberi anda beberapa gelung baharu untuk dijejak sehingga ujian berhenti menjadi perkara pertama yang anda semak.

Soalan lazim

Apakah beza antara WHILE dan REPEAT UNTIL?

WHILE menyemak syarat sebelum setiap pusingan, jadi isinya mungkin berjalan sifar kali. REPEAT UNTIL menyemak selepas setiap pusingan, jadi isinya sentiasa berjalan sekurang-kurangnya sekali. WHILE berterusan selagi syaratnya benar. REPEAT berhenti apabila syaratnya menjadi benar.

Bolehkah gelung berjalan selama-lamanya?

Boleh. Jika tiada apa dalam isi gelung menggerakkan pemboleh ubah ke arah syarat berhenti, gelung tidak akan tamat. Soalan peperiksaan kadangkala meminta anda mengesannya. Cari pemboleh ubah dalam syarat dan semak bahawa isi gelung benar-benar mengubahnya ke arah yang betul.

Bagaimana saya tahu gelung mana yang perlu dijejak dahulu?

Baca kata kuncinya. WHILE menguji sebelum isi gelung, REPEAT menguji selepas isi gelung, pada UNTIL. Tandakan tempat ujian dalam jadual jejak, kemudian mulakan dengan nilai awal sebelum ujian pertama.

Dikemas kini:

Langkah seterusnya

Jika anda boleh menjejak gelung berbilangan tetap tetapi terhenti apabila syarat yang menentukan, seorang guru boleh menyediakan contoh baharu bersama anda sehingga menyemak syarat pada saat yang betul menjadi tabiat.

Kelas percubaan berbayar satu jam pada kadar guru yang disahkan, bermula RM80. Yuran lain, jadual dan susunan seterusnya disahkan terus bersama guru selepas kelas percubaan.

Tuisyen diatur bersama ibu bapa atau penjaga. Hantar halaman ini kepada mereka melalui WhatsApp supaya mereka boleh bertanya bagi pihak anda.

Ibu bapa atau penjaga? Tanya di sini

9,000+ pelajar telah dibantu melalui perkhidmatan kami