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.
if-else
switch-case
for
while
do-while
++
--
random()
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
Syarat diuji dahulu; blok mungkin tidak dilaksanakan langsung.
Gelung do-while — ujian selepas blok
Blok dilaksanakan dahulu; jaminan sekurang-kurangnya 1 kali.
Struktur kawalan pilihan, operator hubungan dan logikal, serta struktur kawalan ulangan dalam Java.
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.
boolean
true
false
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.
Menyediakan dua cabang tindakan: blok pertama dilaksanakan jika syarat true, dan blok else dilaksanakan jika syarat false.
else
if (<syarat Boolean>) { <Arahan-arahan jika Benar> }
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.
if (syarat_boolean1) { penyataan01; } else if (syarat_boolean2) { penyataan02; } else { penyataan03; }
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.
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.
break
switch
default
switch (ujian) { case nilai1: { kumpulan penyataan 1; break; } case nilai2: { kumpulan penyataan 2; break; } default: { kumpulan penyataan lalai; } }
==
!=
>
>=
<
<=
&&
Menghasilkan true HANYA jika SEMUA syarat yang digabungkan adalah benar. Contoh: markah >= 0 && markah <= 100.
markah >= 0 && markah <= 100
||
Menghasilkan true jika SEKURANG-KURANGNYA SATU syarat adalah benar. Contoh: celcius > 37 || fahrenheit > 98.6.
celcius > 37 || fahrenheit > 98.6
!
Menukarkan nilai boolean kepada lawannya: true menjadi false, dan sebaliknya. Contoh: !lulus bermaksud murid gagal.
!lulus
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).
int i = 1;
i <= 10;
i++
i += 1
for (pemula; penamat; penambah) { <Blok penyataan yang perlu diulang> }
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.
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.
while (<syarat boolean>) { <Blok kenyataan berulang> }
do { <Blok kenyataan berulang> } while (<syarat boolean>);
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.
continue
Tokok 1: i++ atau i += 1 atau i = i + 1. Susut 1: i-- atau i -= 1 atau i = i - 1.
i = i + 1
i--
i -= 1
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.
++i
--i
Math.random()
Menjana nombor perpuluhan rawak antara 0.0 (inklusif) sehingga 1.0 (eksklusif) berpandukan waktu sistem sebagai benih (seed).
0.0
1.0
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.
(int)(Math.random() * 10) + 1
(int)(Math.random() * 100) + 1
(int)(Math.random() * 6) + 1
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.
boolean flag = true;
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).
Apakah output bagi segmen kod berikut jika nilai markah = 75?
markah = 75
if (markah >= 80) System.out.println("Cemerlang"); else if (markah >= 70) System.out.println("Kepujian"); else System.out.println("Lulus");
Kepujian
=
if (nombor = 0)
if (nombor == 0)
n -= 1
;
if (x > 10); { ... }
while (i < 5); { ... }
Gelung while dan gelung do-while sentiasa memberikan output yang sama untuk sebarang syarat awal.
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.
Operator logikal || (OR) memerlukan kedua-dua syarat menjadi benar untuk menghasilkan keputusan benar.
Operator || hanya memerlukan sekurang-kurangnya salah satu syarat bernilai benar untuk menghasilkan keputusan true. Hanya operator && (AND) yang memerlukan semua syarat bernilai benar.
Kaedah Math.random() terus menghasilkan nombor bulat secara automatik.
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).
(int)
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?
(markah >= 50 && markah <= 100)
markah = 105
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.
(int)(Math.random() * ) + 1
Seret struktur kawalan ke ciri atau sintaks yang tepat. Jika menggunakan telefon, tekan pilihan jawapan dahulu, kemudian tekan kotak padanan.
(pemula ; penamat ; penambah)
There is something wrong with this question.