240 likes | 582 Views
Bab 7. Struktur Kawalan Pilihan. langkah a. palsu. benar. syarat. langkah 1 .. k. langkah k+1. Pemilihan Tunggal. Carta-alir. Pemilihan Tunggal. Kod Pseudo langkah a jika < syarat benar > mula_jika langkah 1 langkah 2 . . langkah k tamat_jika langkah k + 1.
E N D
Bab 7 Struktur Kawalan Pilihan
langkah a palsu benar syarat langkah 1 .. k langkah k+1 Pemilihan Tunggal Carta-alir
Pemilihan Tunggal Kod Pseudo langkah a jika < syarat benar > mula_jika langkah 1 langkah 2 . . langkah k tamat_jika langkah k + 1
Pernyataan if • Sintaks pernyataan if if ( <ungkapan> ) <pernyataan>; • <pernyataan> hanya akan dilaksanakan jika nilai <ungkapan> adalah bukan sifar (benar) • <ungkapan> di sini boleh terdiri dari ungkapan hubungan atau ungkapan mantik (logik) • Contoh 1: if ( k < j ) min = k; printf(“Akhir pernyataan if\n”); • Jika (k < j) benar : min = k output : Akhir pernyataan if Jika (k < j) palsu : output : Akhir pernyataan if
Pernyataan if • Contoh 2: if (k < j) { min = k; printf(“k lebih kecil dari j\n”); } • Jika (k < j) benar : min = k, output : k lebih kecil dari j • Contoh 3: if (k < j) min = k; printf(“k lebih kecil dari j\n”); • Jika (k < j) benar : min = k, output : k lebih kecil dari j
Pernyataan if • Contoh 2: if (k < j) { min = k; printf(“k lebih kecil dari j\n”); } • Jika (k < j) palsu : output : • Contoh 3: if (k < j) min = k; printf(“k lebih kecil dari j\n”); • Jika (k < j) benar : output : k lebih kecil dari j
langkah a palsu benar syarat langkah 1 .. k langkah k=1 .. n langkah n+1 Dwi-pemilihan • Carta -alir
Dwi-pemilihan • Kod Pseudo jika <syarat benar> mula_jika langkah 1 langkah 2 : langkah k tamat_jika jika_tidak mula_jika_tidak langkah k+1 langkah k+2 : langkah n tamat_jika_tidak langkah n+1
Pernyataan if-else • Sintaks pernyataan if-else if ( <ungkapan> ) <pernyataan-1>; else <pernyataan-2>; • Jika nilai <ungkapan> bukan sifar, <pernyataan-1> akan dilaksanakan • Jika nilai <ungkapan> sifar, <pernyataan-2> akan dilaksanakan
Pernyataan if-else • Contoh 1: if (i < j) min = i; else min = j; printf(“Nilai minima ialah %d\n”, min); Jika i = 2, j = 5 min mengambil nilai i dan output: Nilai minima ialah 2 Jika i = 6, j = 3 min mengambil nilai j dan output: Nilai minima ialah 3
Pernyataan if-else • Contoh 2: if (i < j) { min = i; max = j; } else { min = j; max = i; } printf(“Min = %d, Max = %d\n”, min, max); Jika i = 2, j = 5: output : Min = 2, Max = 5 Jika i = 6, j = 3: output : Min = 3, Max = 6
Pernyataan if-else-if • Sintaks pernyataan if-else-if: if ( <ungkapan-1> ) <pernyataan-1>; else if ( <ungkapan-2> ) <pernyataan-2>; else <pernyataan-3>;
Pernyataan if-else-if #include <stdio.h> void main( ) { char aks; scanf(“%c”, &aks); if ( (aks >= ‘a’) && (aks <= ‘z’) ) printf(“Huruf kecil\n”); else if ( (aks >= ‘A’) && (aks <= ‘Z’) ) printf(“Huruf besar\n”); else if ( (aks >= ‘0’) && (aks <= ‘9’) ) printf(“Digit\n”); else printf(“Aksara istimewa\n”); }
Pernyataan if-else Dua paras • Apabila melibatkan pengujian tersarang • Contoh: if (a > b) { if (a > c) maks = a; else maks = c; } else { if (b > c) maks = b; else maks = c; } Blok A (Paras 2) Blok If-else luar (Paras 1) Blok B (Paras 2)
Masalah else Terjuntai • Berlaku apabila blok suatu pernyataan if atau else itu tidak lengkap • Contoh: if (a < 0) if (b > 0) { : } else { : } Blok A Blok B ?
Benar syarat1 Langkah1 .. k palsu Benar Langkah k+1 .. m syarat2 palsu : : Benar Langkah n+1 .. p Syarat h palsu Langkah q .. r Multi-pemilihan – Carta Alir
Multi-pemilihan – Kod Pseudo jika <syarat_1 benar> mula_jika_1 langkah 1 langkah 2 : langkah k tamat_jika_1 jika_tidak jika <syarat_2 benar> mula_jika_2 langkah k+1 langkah k+2 : langkah m tamat_jika_2 : jika_tidak jika <syarat_h benar> mula_jika_h langkah n+1 langkah n+2 : langkah p tamat_jika_h jika_tidak mula_jika_tidak langkah q langkah q+1 : langkah r tamat_jika_tidak
Pernyataan switch dan break • Digunakan untuk memilih satu sahaja dari beberapa pilihan • Satu bentuk alternatif kepada pernyataan if-else-if • Hanya boleh digunakan jika nilai bagi ungkapan berjenis int atau char • Sintaks pernyataan switch: switch ( <ungkapan> ) { case <ungkapan-1> : <pernyataan-1> ; break; : case <ungkapan-m> : <pernyataan-m>; break; default : <pernyataan-n>; break; }
Pernyataan switch dan break • Bentuk if-else-if int nombor; scanf(“%d”, &nombor); if (nombor == 1) printf(“Satu\n”); else if (nombor == 2) printf(“Dua\n”); else if (nombor == 3) printf(“Tiga\n”); else printf(“Lain-lain\n”);
Pernyataan switch dan break • Bentuk switch-break int nombor; scanf(“%d”, &nombor); switch (nombor) { case 1: printf(“Satu\n”); break; case 2: printf(“Dua\n”); break; case 3: printf(“Tiga\n”); break; default : printf(“Lain-lain\n”); }
Penggunaan break • Diberi segmen aturcara: int nombor; scanf(“%d”, &nombor); switch (nombor) { case 1: printf(“Satu\n”); case 2: printf(“Dua\n”); case 3: printf(“Tiga\n”); default : printf(“Lain-lain\n”); } • Output: Jika nombor = 1 Satu Dua Tiga Lain-lain jika nombor = 3 Tiga Lain-lain
Penggunaan break #include <stdio.h> void main( ) { char aks; scanf(“%c”, &aks); switch (aks) { case ‘a’ : case ‘e’ : case ‘i’ : case ‘o’: case ‘u’: printf(“huruf vokal\n”); break; default: printf(“huruf konsonan\n”); } }