Struktur Kawalan

1.4 Struktur Kawalan
SAINS KOMPUTER • Tingkatan 4 • Bab 1: Pengaturcaraan

1.4 Struktur Kawalan

Struktur kawalan ialah mekanisme dalam pengaturcaraan yang menentukan aliran pelaksanaan arahan dalam sesuatu atur cara. Berbeza dengan arahan linear yang dilaksanakan satu demi satu mengikut urutan, struktur kawalan membolehkan komputer membuat keputusan bercabang atau mengulang sesuatu blok arahan berkali-kali berdasarkan syarat boolean tertentu.

Objektif Pembelajaran

  • Menerangkan aliran struktur kawalan pilihan: if-else dan switch-case.
  • Menulis atur cara menggunakan struktur kawalan pilihan dengan menggabungkan operator hubungan dan operator logik.
  • Menerangkan aliran struktur kawalan ulangan: for, while dan do-while.
  • Menulis atur cara menggunakan struktur kawalan ulangan yang melibatkan operator increment (++) dan decrement (--), Class Math (method random()), dan boolean (flag).

Perbandingan Carta Alir Kawalan Ulangan: while vs do-while

Kedudukan rombus ujian syarat boolean menentukan sama ada ujian dilakukan sebelum (pre-test) atau selepas (post-test) blok arahan dilaksanakan.

Gelung while — ujian sebelum blok

Carta alir kawalan ulangan while Bermula dengan terminal MULA, kemudian anak panah ke bawah masuk ke nod syarat berbentuk rombus yang menguji sama ada syarat masih benar. Cabang berlabel Benar keluar ke kanan kepada nod proses Blok kenyataan berulang, dan dari blok itu satu anak panah berpatah balik ke atas lalu ke kiri, bertemu semula dengan garis masuk di atas nod syarat. Cabang berlabel Palsu keluar ke bawah menuju terminal TAMAT. Ujian syarat dilakukan sebelum blok arahan dilaksanakan. MULA Masih benar? Benar Palsu Blok kenyataan TAMAT

Syarat diuji dahulu; blok mungkin tidak dilaksanakan langsung.

Gelung do-while — ujian selepas blok

Carta alir kawalan ulangan do-while Bermula dengan terminal MULA, kemudian anak panah ke bawah terus ke nod proses Blok kenyataan berulang. Dari blok itu, anak panah ke bawah masuk ke nod syarat berbentuk rombus yang menguji sama ada syarat masih benar. Cabang berlabel Benar keluar ke kiri lalu berpatah balik ke atas, bertemu semula dengan laluan masuk di atas blok kenyataan. Cabang berlabel Palsu keluar ke bawah menuju terminal TAMAT. Blok arahan dilaksanakan sekurang-kurangnya sekali sebelum syarat diuji. MULA Blok kenyataan berulang Masih benar? Benar Palsu TAMAT

Blok dilaksanakan dahulu; jaminan sekurang-kurangnya 1 kali.

Penerangan Ringkas

Struktur kawalan pilihan, operator hubungan dan logikal, serta struktur kawalan ulangan dalam Java.

Pengenalan struktur kawalan

Kawalan urutan melaksanakan arahan satu demi satu secara linear. Kawalan pilihan membuat keputusan secara automatik berasaskan penilaian syarat. Kawalan ulangan mengulang blok penyataan beberapa kali sama ada berasaskan pembilang atau berasaskan syarat.

Jenis data boolean hanya mempunyai dua nilai yang mungkin: true (Benar / Ya) atau false (Palsu / Tidak). Nilai boolean dicipta berasaskan sistem binari oleh George Boole dan digunakan dalam penyataan bersyarat untuk menguji input atau nilai pemboleh ubah bagi menentukan cabang tindakan seterusnya.

Struktur kawalan pilihan

if

Melaksanakan blok arahan hanya sekiranya syarat boolean yang dinilai adalah true. Jika false, tiada tindakan susulan dalam blok diambil dan aliran terus ke penyataan berikutnya.

if-else

Menyediakan dua cabang tindakan: blok pertama dilaksanakan jika syarat true, dan blok else dilaksanakan jika syarat false.

Sintaks if
if (<syarat Boolean>) {
    <Arahan-arahan jika Benar>
}
Sintaks if-else
if (<syarat Boolean>) {
    <Arahan-arahan jika Benar>
} else {
    <Arahan-arahan jika Palsu>
}

if-else-if

Digunakan untuk membuat keputusan yang lebih kompleks dengan menguji berbilang syarat secara berturutan. Komputer menguji syarat pertama; jika palsu, ia mencuba syarat kedua, dan seterusnya. Sebaik sahaja satu syarat benar ditemui, bloknya dilaksanakan dan baki syarat lain tidak diuji.

Sintaks if-else-if
if (syarat_boolean1) {
    penyataan01;
} else if (syarat_boolean2) {
    penyataan02;
} else {
    penyataan03;
}

switch-case

Digunakan untuk menggantikan struktur if-else-if yang panjang bagi mengelakkan kerumitan dan kekeliruan. Ia memadankan nilai ujian ungkapan (nombor, abjad, rentetan) dengan calon-calon case.

Pernyataan break berfungsi untuk memberhentikan pelaksanaan dan melompat keluar daripada blok switch. Jika tertinggal, pelaksanaan diteruskan ke case seterusnya. Bahagian default ialah pilihan tambahan yang dilaksanakan sekiranya tiada nilai case yang sepadan dengan nilai ujian.

Sintaks switch-case
switch (ujian) {
    case nilai1: {
        kumpulan penyataan 1;
        break;
    }
    case nilai2: {
        kumpulan penyataan 2;
        break;
    }
    default: {
        kumpulan penyataan lalai;
    }
}

Operator hubungan dan operator logikal

Jadual 1.9: Operator hubungan
OperatorMakna
==Sama dengan
!=Tidak sama dengan
>Lebih besar daripada
>=Lebih besar daripada atau sama dengan
<Kurang daripada
<=Kurang daripada atau sama dengan

AND (&&)

Menghasilkan true HANYA jika SEMUA syarat yang digabungkan adalah benar. Contoh: markah >= 0 && markah <= 100.

OR (||)

Menghasilkan true jika SEKURANG-KURANGNYA SATU syarat adalah benar. Contoh: celcius > 37 || fahrenheit > 98.6.

NOT (!)

Menukarkan nilai boolean kepada lawannya: true menjadi false, dan sebaliknya. Contoh: !lulus bermaksud murid gagal.

Struktur kawalan ulangan

Ulangan berasaskan pembilang: for

Digunakan apabila bilangan ulangan telah diketahui dengan jelas. Tiga komponen utama dalam kepala gelung for ialah pemula (contoh: int i = 1;), penamat (contoh: i <= 10;), dan penambah / pengemaskinian (contoh: i++ atau i += 1).

Sintaks for
for (pemula; penamat; penambah) {
    <Blok penyataan yang perlu diulang>
}

Ulangan berasaskan syarat: while

Membuat ujian syarat boolean TERLEBIH DAHULU (pre-test). Jika syarat benar, blok arahan dilaksanakan; jika palsu pada percubaan pertama, blok arahan tidak akan dilaksanakan langsung. Bilangan ulangan minimum ialah 0 kali.

Ulangan berasaskan syarat: do-while

Melaksanakan blok arahan terlebih dahulu SEBELUM menguji syarat boolean (post-test). Ini menjamin blok arahan dilaksanakan SEKURANG-KURANGNYA SEKALI walaupun syarat boolean bernilai palsu pada penilaian pertama.

Sintaks while
while (<syarat boolean>) {
    <Blok kenyataan berulang>
}
Sintaks do-while
do {
    <Blok kenyataan berulang>
} while (<syarat boolean>);

Gelung infiniti dan pernyataan kawalan gelung

Gelung infiniti berlaku apabila pembilang atau syarat tidak dikemas kini di dalam badan gelung. Kata kunci break digunakan untuk keluar serta-merta dari struktur gelung atau switch. Kata kunci continue melangkau baki arahan dalam lelaran semasa dan meneruskan gelung ke lelaran berikutnya.

Operator increment, decrement, Class Math, dan bendera boolean

Increment (++) dan decrement (--)

Tokok 1: i++ atau i += 1 atau i = i + 1. Susut 1: i-- atau i -= 1 atau i = i - 1.

Prefix (++i, --i) ditokok/disusut sebelum nilai pemboleh ubah digunakan dalam ungkapan. Postfix (i++, i--) ditokok/disusut selepas nilai pemboleh ubah digunakan dalam ungkapan.

Math.random()

Menjana nombor perpuluhan rawak antara 0.0 (inklusif) sehingga 1.0 (eksklusif) berpandukan waktu sistem sebagai benih (seed).

Formula menukar julat kepada nombor bulat: julat 1 hingga 10 ialah (int)(Math.random() * 10) + 1; julat 1 hingga 100 ialah (int)(Math.random() * 100) + 1; julat 1 hingga 6 (dadu) ialah (int)(Math.random() * 6) + 1.

Bendera boolean (Boolean Flag)

Pemboleh ubah boolean, contohnya boolean flag = true;, digunakan untuk mengawal gelung do-while atau while berdasarkan input pengguna. Contohnya pengguna memasukkan input "ya" untuk meneruskan atau "tidak" untuk menghentikan gelung.

Cuba Jawab Dulu

Cuba jawab sendiri dahulu, kemudian tekan butang untuk menyemak.

Apakah perbezaan utama antara struktur kawalan ulangan while dengan do-while dari segi pelaksanaan blok arahannya?

Gelung while menguji syarat boolean terlebih dahulu sebelum blok arahan dilaksanakan, jadi blok mungkin tidak dilaksanakan langsung jika syarat palsu. Gelung do-while melaksanakan blok arahan terlebih dahulu sebelum menguji syarat boolean, menjamin pelaksanaan sekurang-kurangnya sekali.

Tuliskan ungkapan Java menggunakan Math.random() untuk menjana satu nombor bulat rawak bagi balingan dadu enam muka (nombor 1 hingga 6).

(int)(Math.random() * 6) + 1

Apakah output bagi segmen kod berikut jika nilai markah = 75?

if (markah >= 80)
    System.out.println("Cemerlang");
else if (markah >= 70)
    System.out.println("Kepujian");
else
    System.out.println("Lulus");

Kepujian

Kesalahan Biasa

  • Menggunakan satu tanda sama dengan (=) dalam ungkapan syarat boolean, contohnya menulis if (nombor = 0) dan bukannya if (nombor == 0). Tanda = ialah operator perumpukan nilai, manakala == ialah operator hubungan untuk membandingkan kesamaan.
  • Tertinggal arahan break dalam struktur switch-case. Ini menyebabkan atur cara terlajak melaksanakan semua penyataan pada case di bawahnya (fall-through) walaupun padanan nilai telah selesai.
  • Lupa mengemas kini pemboleh ubah pembilang atau syarat dalam badan gelung, contohnya tidak meletakkan i++ atau n -= 1 di dalam gelung while. Ini menyebabkan syarat boolean sentiasa bernilai benar dan atur cara terperangkap dalam gelung infiniti.
  • Meletakkan tanda koma bertitik (;) di hujung baris penyataan if atau while, contohnya if (x > 10); { ... } atau while (i < 5); { ... }. Koma bertitik menamatkan penyataan tersebut serta-merta dan memisahkan blok arahan daripada syarat kawalan.

Salah Faham Konsep

Salah Faham

Gelung while dan gelung do-while sentiasa memberikan output yang sama untuk sebarang syarat awal.

Fakta Betul

Jika nilai pemula tidak memenuhi syarat boolean sejak awal, gelung while tidak akan dilaksanakan langsung (0 kali), manakala gelung do-while tetap melaksanakan blok arahan sebanyak 1 kali sebelum keluar.

Salah Faham

Operator logikal || (OR) memerlukan kedua-dua syarat menjadi benar untuk menghasilkan keputusan benar.

Fakta Betul

Operator || hanya memerlukan sekurang-kurangnya salah satu syarat bernilai benar untuk menghasilkan keputusan true. Hanya operator && (AND) yang memerlukan semua syarat bernilai benar.

Salah Faham

Kaedah Math.random() terus menghasilkan nombor bulat secara automatik.

Fakta Betul

Math.random() mengembalikan nombor perpuluhan (double) dari julat 0.0 hingga kurang daripada 1.0. Ia perlu didarab dengan saiz julat, ditambah dengan nilai mula, dan ditukar jenis data (type cast) kepada (int).

Ringkasan

  • Struktur kawalan terbahagi kepada kawalan urutan, pilihan, dan ulangan.
  • Kawalan pilihan membuat keputusan berasaskan data boolean (true/false) melalui penyataan if, if-else, if-else-if, atau switch-case.
  • Gabungan syarat boolean menggunakan operator hubungan (==, !=, >, <, >=, <=) dan operator logikal (&&, ||, !).
  • Kawalan ulangan for digunakan apabila bilangan ulangan diketahui, berasaskan pembilang: pemula, penamat, penambah.
  • Kawalan ulangan berasaskan syarat terdiri daripada while (pre-test, minimum 0 lelaran) dan do-while (post-test, minimum 1 lelaran).
  • Tokokan (++) dan susutan (--) mengemas kini nilai pembilang bagi mengelakkan gelung infiniti, manakala bendera boolean dan Math.random() membantu kawalan interaktif dan rawak.

Aktiviti Ringkas

A. Kuiz Objektif

1 Antara struktur kawalan ulangan berikut, yang manakah menjamin bahawa blok arahannya akan dilaksanakan sekurang-kurangnya sekali walaupun syarat boolean bernilai palsu pada penilaian pertama?

2 Apakah output yang dihasilkan jika ungkapan logikal (markah >= 50 && markah <= 100) dinilai apabila nilai pemboleh ubah markah = 105?

B. Isi Tempat Kosong

3 Kata kunci yang digunakan untuk keluar serta-merta daripada sesuatu blok switch atau gelung ialah .

4 Untuk menjana satu nombor rawak bulat antara 1 hingga 10 menggunakan subatur cara Java, ungkapan yang ditulis ialah (int)(Math.random() * ) + 1.

C. Padankan Struktur Kawalan dengan Cirinya

Seret struktur kawalan ke ciri atau sintaks yang tepat. Jika menggunakan telefon, tekan pilihan jawapan dahulu, kemudian tekan kotak padanan.

Struktur Kawalan
for
while
switch-case
do-while
Ciri / Sintaks
1 Kawalan ulangan berasaskan pembilang dengan format (pemula ; penamat ; penambah)
2 Kawalan ulangan yang membuat penilaian syarat sebelum memasuki blok arahan (pre-test)
3 Struktur kawalan pilihan yang memadankan nilai ujian pemboleh ubah dengan calon label case
4 Kawalan ulangan yang melaksanakan blok arahan sekurang-kurangnya sekali sebelum menyemak syarat (post-test)
 

Kata Kunci

Boolean Struktur Kawalan Pilihan Struktur Kawalan Ulangan Operator Hubungan Operator Logikal Pembilang (Counter) Increment (++) Decrement (--) Gelung Infiniti (Infinite Loop) Math.random() Bendera Boolean (Boolean Flag) break

Struktur Kawalan

1.4 Struktur Kawalan
SAINS KOMPUTER • Tingkatan 4 • Bab 1: Pengaturcaraan

1.4 Struktur Kawalan

Struktur kawalan ialah mekanisme dalam pengaturcaraan yang menentukan aliran pelaksanaan arahan dalam sesuatu atur cara. Berbeza dengan arahan linear yang dilaksanakan satu demi satu mengikut urutan, struktur kawalan membolehkan komputer membuat keputusan bercabang atau mengulang sesuatu blok arahan berkali-kali berdasarkan syarat boolean tertentu.

Objektif Pembelajaran

  • Menerangkan aliran struktur kawalan pilihan: if-else dan switch-case.
  • Menulis atur cara menggunakan struktur kawalan pilihan dengan menggabungkan operator hubungan dan operator logik.
  • Menerangkan aliran struktur kawalan ulangan: for, while dan do-while.
  • Menulis atur cara menggunakan struktur kawalan ulangan yang melibatkan operator increment (++) dan decrement (--), Class Math (method random()), dan boolean (flag).

Perbandingan Carta Alir Kawalan Ulangan: while vs do-while

Kedudukan rombus ujian syarat boolean menentukan sama ada ujian dilakukan sebelum (pre-test) atau selepas (post-test) blok arahan dilaksanakan.

Gelung while — ujian sebelum blok

Carta alir kawalan ulangan while Bermula dengan terminal MULA, kemudian anak panah ke bawah masuk ke nod syarat berbentuk rombus yang menguji sama ada syarat masih benar. Cabang berlabel Benar keluar ke kanan kepada nod proses Blok kenyataan berulang, dan dari blok itu satu anak panah berpatah balik ke atas lalu ke kiri, bertemu semula dengan garis masuk di atas nod syarat. Cabang berlabel Palsu keluar ke bawah menuju terminal TAMAT. Ujian syarat dilakukan sebelum blok arahan dilaksanakan. MULA Masih benar? Benar Palsu Blok kenyataan TAMAT

Syarat diuji dahulu; blok mungkin tidak dilaksanakan langsung.

Gelung do-while — ujian selepas blok

Carta alir kawalan ulangan do-while Bermula dengan terminal MULA, kemudian anak panah ke bawah terus ke nod proses Blok kenyataan berulang. Dari blok itu, anak panah ke bawah masuk ke nod syarat berbentuk rombus yang menguji sama ada syarat masih benar. Cabang berlabel Benar keluar ke kiri lalu berpatah balik ke atas, bertemu semula dengan laluan masuk di atas blok kenyataan. Cabang berlabel Palsu keluar ke bawah menuju terminal TAMAT. Blok arahan dilaksanakan sekurang-kurangnya sekali sebelum syarat diuji. MULA Blok kenyataan berulang Masih benar? Benar Palsu TAMAT

Blok dilaksanakan dahulu; jaminan sekurang-kurangnya 1 kali.

Penerangan Ringkas

Struktur kawalan pilihan, operator hubungan dan logikal, serta struktur kawalan ulangan dalam Java.

Pengenalan struktur kawalan

Kawalan urutan melaksanakan arahan satu demi satu secara linear. Kawalan pilihan membuat keputusan secara automatik berasaskan penilaian syarat. Kawalan ulangan mengulang blok penyataan beberapa kali sama ada berasaskan pembilang atau berasaskan syarat.

Jenis data boolean hanya mempunyai dua nilai yang mungkin: true (Benar / Ya) atau false (Palsu / Tidak). Nilai boolean dicipta berasaskan sistem binari oleh George Boole dan digunakan dalam penyataan bersyarat untuk menguji input atau nilai pemboleh ubah bagi menentukan cabang tindakan seterusnya.

Struktur kawalan pilihan

if

Melaksanakan blok arahan hanya sekiranya syarat boolean yang dinilai adalah true. Jika false, tiada tindakan susulan dalam blok diambil dan aliran terus ke penyataan berikutnya.

if-else

Menyediakan dua cabang tindakan: blok pertama dilaksanakan jika syarat true, dan blok else dilaksanakan jika syarat false.

Sintaks if
if (<syarat Boolean>) {
    <Arahan-arahan jika Benar>
}
Sintaks if-else
if (<syarat Boolean>) {
    <Arahan-arahan jika Benar>
} else {
    <Arahan-arahan jika Palsu>
}

if-else-if

Digunakan untuk membuat keputusan yang lebih kompleks dengan menguji berbilang syarat secara berturutan. Komputer menguji syarat pertama; jika palsu, ia mencuba syarat kedua, dan seterusnya. Sebaik sahaja satu syarat benar ditemui, bloknya dilaksanakan dan baki syarat lain tidak diuji.

Sintaks if-else-if
if (syarat_boolean1) {
    penyataan01;
} else if (syarat_boolean2) {
    penyataan02;
} else {
    penyataan03;
}

switch-case

Digunakan untuk menggantikan struktur if-else-if yang panjang bagi mengelakkan kerumitan dan kekeliruan. Ia memadankan nilai ujian ungkapan (nombor, abjad, rentetan) dengan calon-calon case.

Pernyataan break berfungsi untuk memberhentikan pelaksanaan dan melompat keluar daripada blok switch. Jika tertinggal, pelaksanaan diteruskan ke case seterusnya. Bahagian default ialah pilihan tambahan yang dilaksanakan sekiranya tiada nilai case yang sepadan dengan nilai ujian.

Sintaks switch-case
switch (ujian) {
    case nilai1: {
        kumpulan penyataan 1;
        break;
    }
    case nilai2: {
        kumpulan penyataan 2;
        break;
    }
    default: {
        kumpulan penyataan lalai;
    }
}

Operator hubungan dan operator logikal

Jadual 1.9: Operator hubungan
OperatorMakna
==Sama dengan
!=Tidak sama dengan
>Lebih besar daripada
>=Lebih besar daripada atau sama dengan
<Kurang daripada
<=Kurang daripada atau sama dengan

AND (&&)

Menghasilkan true HANYA jika SEMUA syarat yang digabungkan adalah benar. Contoh: markah >= 0 && markah <= 100.

OR (||)

Menghasilkan true jika SEKURANG-KURANGNYA SATU syarat adalah benar. Contoh: celcius > 37 || fahrenheit > 98.6.

NOT (!)

Menukarkan nilai boolean kepada lawannya: true menjadi false, dan sebaliknya. Contoh: !lulus bermaksud murid gagal.

Struktur kawalan ulangan

Ulangan berasaskan pembilang: for

Digunakan apabila bilangan ulangan telah diketahui dengan jelas. Tiga komponen utama dalam kepala gelung for ialah pemula (contoh: int i = 1;), penamat (contoh: i <= 10;), dan penambah / pengemaskinian (contoh: i++ atau i += 1).

Sintaks for
for (pemula; penamat; penambah) {
    <Blok penyataan yang perlu diulang>
}

Ulangan berasaskan syarat: while

Membuat ujian syarat boolean TERLEBIH DAHULU (pre-test). Jika syarat benar, blok arahan dilaksanakan; jika palsu pada percubaan pertama, blok arahan tidak akan dilaksanakan langsung. Bilangan ulangan minimum ialah 0 kali.

Ulangan berasaskan syarat: do-while

Melaksanakan blok arahan terlebih dahulu SEBELUM menguji syarat boolean (post-test). Ini menjamin blok arahan dilaksanakan SEKURANG-KURANGNYA SEKALI walaupun syarat boolean bernilai palsu pada penilaian pertama.

Sintaks while
while (<syarat boolean>) {
    <Blok kenyataan berulang>
}
Sintaks do-while
do {
    <Blok kenyataan berulang>
} while (<syarat boolean>);

Gelung infiniti dan pernyataan kawalan gelung

Gelung infiniti berlaku apabila pembilang atau syarat tidak dikemas kini di dalam badan gelung. Kata kunci break digunakan untuk keluar serta-merta dari struktur gelung atau switch. Kata kunci continue melangkau baki arahan dalam lelaran semasa dan meneruskan gelung ke lelaran berikutnya.

Operator increment, decrement, Class Math, dan bendera boolean

Increment (++) dan decrement (--)

Tokok 1: i++ atau i += 1 atau i = i + 1. Susut 1: i-- atau i -= 1 atau i = i - 1.

Prefix (++i, --i) ditokok/disusut sebelum nilai pemboleh ubah digunakan dalam ungkapan. Postfix (i++, i--) ditokok/disusut selepas nilai pemboleh ubah digunakan dalam ungkapan.

Math.random()

Menjana nombor perpuluhan rawak antara 0.0 (inklusif) sehingga 1.0 (eksklusif) berpandukan waktu sistem sebagai benih (seed).

Formula menukar julat kepada nombor bulat: julat 1 hingga 10 ialah (int)(Math.random() * 10) + 1; julat 1 hingga 100 ialah (int)(Math.random() * 100) + 1; julat 1 hingga 6 (dadu) ialah (int)(Math.random() * 6) + 1.

Bendera boolean (Boolean Flag)

Pemboleh ubah boolean, contohnya boolean flag = true;, digunakan untuk mengawal gelung do-while atau while berdasarkan input pengguna. Contohnya pengguna memasukkan input "ya" untuk meneruskan atau "tidak" untuk menghentikan gelung.

Cuba Jawab Dulu

Cuba jawab sendiri dahulu, kemudian tekan butang untuk menyemak.

Apakah perbezaan utama antara struktur kawalan ulangan while dengan do-while dari segi pelaksanaan blok arahannya?

Gelung while menguji syarat boolean terlebih dahulu sebelum blok arahan dilaksanakan, jadi blok mungkin tidak dilaksanakan langsung jika syarat palsu. Gelung do-while melaksanakan blok arahan terlebih dahulu sebelum menguji syarat boolean, menjamin pelaksanaan sekurang-kurangnya sekali.

Tuliskan ungkapan Java menggunakan Math.random() untuk menjana satu nombor bulat rawak bagi balingan dadu enam muka (nombor 1 hingga 6).

(int)(Math.random() * 6) + 1

Apakah output bagi segmen kod berikut jika nilai markah = 75?

if (markah >= 80)
    System.out.println("Cemerlang");
else if (markah >= 70)
    System.out.println("Kepujian");
else
    System.out.println("Lulus");

Kepujian

Kesalahan Biasa

  • Menggunakan satu tanda sama dengan (=) dalam ungkapan syarat boolean, contohnya menulis if (nombor = 0) dan bukannya if (nombor == 0). Tanda = ialah operator perumpukan nilai, manakala == ialah operator hubungan untuk membandingkan kesamaan.
  • Tertinggal arahan break dalam struktur switch-case. Ini menyebabkan atur cara terlajak melaksanakan semua penyataan pada case di bawahnya (fall-through) walaupun padanan nilai telah selesai.
  • Lupa mengemas kini pemboleh ubah pembilang atau syarat dalam badan gelung, contohnya tidak meletakkan i++ atau n -= 1 di dalam gelung while. Ini menyebabkan syarat boolean sentiasa bernilai benar dan atur cara terperangkap dalam gelung infiniti.
  • Meletakkan tanda koma bertitik (;) di hujung baris penyataan if atau while, contohnya if (x > 10); { ... } atau while (i < 5); { ... }. Koma bertitik menamatkan penyataan tersebut serta-merta dan memisahkan blok arahan daripada syarat kawalan.

Salah Faham Konsep

Salah Faham

Gelung while dan gelung do-while sentiasa memberikan output yang sama untuk sebarang syarat awal.

Fakta Betul

Jika nilai pemula tidak memenuhi syarat boolean sejak awal, gelung while tidak akan dilaksanakan langsung (0 kali), manakala gelung do-while tetap melaksanakan blok arahan sebanyak 1 kali sebelum keluar.

Salah Faham

Operator logikal || (OR) memerlukan kedua-dua syarat menjadi benar untuk menghasilkan keputusan benar.

Fakta Betul

Operator || hanya memerlukan sekurang-kurangnya salah satu syarat bernilai benar untuk menghasilkan keputusan true. Hanya operator && (AND) yang memerlukan semua syarat bernilai benar.

Salah Faham

Kaedah Math.random() terus menghasilkan nombor bulat secara automatik.

Fakta Betul

Math.random() mengembalikan nombor perpuluhan (double) dari julat 0.0 hingga kurang daripada 1.0. Ia perlu didarab dengan saiz julat, ditambah dengan nilai mula, dan ditukar jenis data (type cast) kepada (int).

Ringkasan

  • Struktur kawalan terbahagi kepada kawalan urutan, pilihan, dan ulangan.
  • Kawalan pilihan membuat keputusan berasaskan data boolean (true/false) melalui penyataan if, if-else, if-else-if, atau switch-case.
  • Gabungan syarat boolean menggunakan operator hubungan (==, !=, >, <, >=, <=) dan operator logikal (&&, ||, !).
  • Kawalan ulangan for digunakan apabila bilangan ulangan diketahui, berasaskan pembilang: pemula, penamat, penambah.
  • Kawalan ulangan berasaskan syarat terdiri daripada while (pre-test, minimum 0 lelaran) dan do-while (post-test, minimum 1 lelaran).
  • Tokokan (++) dan susutan (--) mengemas kini nilai pembilang bagi mengelakkan gelung infiniti, manakala bendera boolean dan Math.random() membantu kawalan interaktif dan rawak.

Aktiviti Ringkas

A. Kuiz Objektif

1 Antara struktur kawalan ulangan berikut, yang manakah menjamin bahawa blok arahannya akan dilaksanakan sekurang-kurangnya sekali walaupun syarat boolean bernilai palsu pada penilaian pertama?

2 Apakah output yang dihasilkan jika ungkapan logikal (markah >= 50 && markah <= 100) dinilai apabila nilai pemboleh ubah markah = 105?

B. Isi Tempat Kosong

3 Kata kunci yang digunakan untuk keluar serta-merta daripada sesuatu blok switch atau gelung ialah .

4 Untuk menjana satu nombor rawak bulat antara 1 hingga 10 menggunakan subatur cara Java, ungkapan yang ditulis ialah (int)(Math.random() * ) + 1.

C. Padankan Struktur Kawalan dengan Cirinya

Seret struktur kawalan ke ciri atau sintaks yang tepat. Jika menggunakan telefon, tekan pilihan jawapan dahulu, kemudian tekan kotak padanan.

Struktur Kawalan
for
while
switch-case
do-while
Ciri / Sintaks
1 Kawalan ulangan berasaskan pembilang dengan format (pemula ; penamat ; penambah)
2 Kawalan ulangan yang membuat penilaian syarat sebelum memasuki blok arahan (pre-test)
3 Struktur kawalan pilihan yang memadankan nilai ujian pemboleh ubah dengan calon label case
4 Kawalan ulangan yang melaksanakan blok arahan sekurang-kurangnya sekali sebelum menyemak syarat (post-test)
 

Kata Kunci

Boolean Struktur Kawalan Pilihan Struktur Kawalan Ulangan Operator Hubungan Operator Logikal Pembilang (Counter) Increment (++) Decrement (--) Gelung Infiniti (Infinite Loop) Math.random() Bendera Boolean (Boolean Flag) break