Pemeriksaan Cabang Banyak dengan Satu Ekspresi
Jika Anda perlu menjalankan logika berbeda berdasarkan nilai yang berbeda dari ekspresi yang sama, pernyataan case .. of .. end sangat cocok digunakan.
case SomeValue of
0: DoSomething;
1: DoSomethingElse;
2: begin
IfItsTwoThenDoThis;
AndAlsoDoThis;
end;
3..10: DoSomethingInCaseItsInThisRange;
11, 21, 31: AndDoSomethingForTheseSpecialValues;
else
DoSomethingInCaseOfUnexpectedValue;
end;Code language: JavaScript (javascript)
Cabang else bersifat opsional, fungsinya sama dengan kata kunci default pada pernyataan switch di bahasa keluarga C.
Jika tidak ada cabang yang cocok dan Anda tidak menulis blok else, tidak ada kode yang akan dieksekusi sama sekali.
Jika Anda sudah mengenal bahasa tipe C dan membandingkannya dengan pernyataan switch, Anda akan melihat bahwa case pada Pascal tidak memiliki sifat tembus otomatis (fall-through). Ini adalah keunggulan yang didesain sengaja oleh Pascal. Anda tidak perlu menambahkan perintah break secara manual; setiap eksekusi hanya akan masuk ke satu cabang case paling banyak, lalu keluar dari seluruh struktur case setelah selesai berjalan.
5 Bentuk Penulisan Pencocokan yang Sah
case num of
5: Writeln('Sama dengan 5'); // Satu nilai tunggal
1,3,5: Writeln('Cocok salah satu dari 1, 3, 5'); // Beberapa nilai dipisah koma
10..20: Writeln('Rentang angka 10 sampai 20'); // Rentang angka berurutan
'a'..'z': Writeln('Huruf kecil alfabet'); // Rentang karakter juga didukung
else
Writeln('Tidak ada nilai yang cocok');
end;Code language: JavaScript (javascript)
Cabang dengan Banyak Baris Kode Harus Dibungkus begin..end
case n of
2: begin
Writeln('Cabang 2');
Writeln('Jalankan beberapa baris kode');
end;
end;Code language: JavaScript (javascript)
Berikut adalah contoh program: masukkan angka ASCII antara 1–128, lalu program akan mengklasifikasikan jenis karakter ASCII berdasarkan angka input.
{$ifdef FPC} {$mode objfpc} {$H+} {$endif}
{$codepage utf8}
program AsciiJudge;
// Prosedur terbungkus: kirim nilai ASCII 0-128 untuk diklasifikasikan
procedure JudgeAsciiCode(code: Integer);
begin
case code of
// 1. Pencocokan nilai tunggal + blok multi baris begin end (tombol Enter ASCII=13)
13: begin
Writeln('======== Tombol Enter Khusus ========');
Writeln('Kode ASCII: 13 Karakter kontrol carriage return');
Writeln('======================================');
end;
// 2. Beberapa nilai terpisah koma: semua karakter kontrol umum 0-12, 14-31
0,1,2,3,4,5,6,7,8,9,10,11,12,14,15..31:
Writeln('Jenis: Karakter kontrol');
// 3. Pencocokan rentang: angka 0~9 ASCII 48~57
48..57: Writeln('Jenis: Angka 0-9');
// Rentang: Huruf kapital A-Z
65..90: Writeln('Jenis: Huruf kapital A-Z');
// Rentang: Huruf kecil a-z
97..122: Writeln('Jenis: Huruf kecil a-z');
// 4. Cabang default else + blok multi baris begin end (tanda baca/simbol)
else
begin
Writeln('Jenis: Tanda baca / Simbol');
Writeln('Kode ASCII yang dimasukkan: ', code);
end;
end;
end;
var
asciiNum: Integer;
begin
Write('Masukkan angka ASCII antara 0 sampai 128: ');
ReadLn(asciiNum);
// Batasi rentang input
if (asciiNum >= 0) and (asciiNum <= 128) then
JudgeAsciiCode(asciiNum)
else
Writeln('Input melebihi rentang 0~128, tidak valid!');
ReadLn;
end.Code language: PHP (php)
Untuk mempelajari lebih lanjut tentang kode ASCII, silakan baca artikel berikut: ASCII table – Table of ASCII codes, characters and symbols
Pemeriksaan Kondisi Banyak Nilai (Pernyataan case)