Lệnh CASE trong Pascal
Ở bài trước mình đã hướng dẫn sử dụng lệnh if dùng để rẻ nhánh chương trình trong Pascal. Vậy thì trong bài này ta sẽ tiếp tục học một lệnh khác cũng có công dụng rẻ nhánh tương tự, đó là lệnh CASE.

Lưu ý: Lệnh CASE ít khi được sử dụng để lập trình hơn trong thực tế, thay vào đó người ta sẽ sử dụng lệnh if để thay thế.
1. Lệnh CASE trong Pascal là gì?
Nếu lệnh if-then-else dùng để rẻ chương trình thành nhiều hướng khác nhau thì lệnh CASE cũng có chức năng tương tự. Nghĩa là bạn có thể sử dụng CASE để điều hướng code thành nhiều nhánh khác nhau.
Cú pháp của CASE như sau:
Bài viết này được đăng tại [free tuts .net]
case (expression) of L1 : S1; L2: S2; ... ... Ln: Sn; end;
Trong đó:
- Case, of và end là 3 từ khóa bắt buộc phải có. Cuối lệnh end phải có cặp dấu chấm phẩy ;.
 - L1, L2, ..., Ln là những trường hợp có thể xảy ra của chương trình.
 
Hãy xem một ví dụ dưới đây để hiểu hơn về CASE.
program checkCase;
var
   level: char;
begin
   level := 'A';
   case (level) of
      'A' : writeln('Level A!' );
      'B', 'C': writeln('Level B' );
      'D' : writeln('Level D' );
      'F' : writeln('Level F' );
   end;     
   
   writeln('Level cua ban la:  ', grade );
end.Chạy chương trình này bạn sẽ thu được kết quả như sau:
Level A! Level cua ban la: A
2. Lệnh CASE ... ELSE trong Pascal
Trong lệnh if có dòng ELSE dùng để xử lý mặc định nếu những điều kiện ở phía trên không đúng. Trong CASE cũng vậy, bạn có thể bổ sung lệnh này để thực hiện những đoạn code sẽ xảy ra nếu những nhánh trên không thỏa yêu cầu. Cú pháp như sau:
case (expression) of L1 : S1; L2 : S2; ... ... Ln: Sn; else Sm; end;
Quay lại ví dụ trên, ta sẽ thực hiện lại có kèm lệnh ELSE như sau:
program checkCaseElse;
var
   level: char;
begin
   level := 'A';
   case (level) of
      'A' : writeln('Level A!' );
      'B', 'C': writeln('Level B' );
      'D' : writeln('Level D' );
      'F' : writeln('Level F' );
   else
       writeln('Ban nhap level sai roi');
   end;     
   
   writeln('Level cua ban la:  ', grade );
end.Nếu bạn thay đổi giá trị ở dòng level := 'A' thành một giá trị khác ngoài (A, B, D, F) thì sẽ xuất hiện dòng 'Ban nhap level sai roi'.
3. Nested CASE trong Pascal
Nested CASE hay còn gọi là CASE lồng nhau. Thực ra đây cũng là một lệnh rẻ nhánh, vì vậy bạn có thể lồng nó vào nhau để tạo ra một chương trình có rất nhiều nhánh. Tuy nhiên lời khuyên là nếu chương trình cần phải sử dụng CASE lồng nhau thì bạn hãy chuyển sang sử dụng IF vì nó rõ ràng và tường minh hơn.
Hãy xem ví dụ dưới đây để biết cách sử dụng CASE lồng nhau.
program checknestedCase;
var
   a, b: integer;
begin
   a := 100;
   b := 200;
   
   case (a) of
      100: begin
         writeln('Gia tri a la 100' );
         case (b) of
            200: writeln('Gia tri b la 200' );
            end;
         end; 
      end;
end.Case b chỉ xảy ra khi a có giá trị là 100. Bạn hãy thay đổi giá trị của từng biến để chạy và xem kết quả nhé.
Như vậy là mình đã giới thiệu xong cách sử dụng lệnh CASE trong Pascal. Đây là lệnh xếp thứ hai sau lệnh If, trong danh sách những lệnh rẻ nhánh của Pascal.

            Các kiểu dữ liệu trong C ( int - float - double - char ...)        
            Thuật toán tìm ước chung lớn nhất trong C/C++        
            Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)        
            ComboBox - ListBox trong lập trình C# winforms        
            Random trong Python: Tạo số random ngẫu nhiên        
            Lệnh cin và cout trong C++        
                Cách khai báo biến trong PHP, các loại biến thường gặp            
                Download và cài đặt Vertrigo Server            
                Thẻ li trong HTML            
                Thẻ article trong HTML5            
                Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên            
                Cách dùng thẻ img trong HTML và các thuộc tính của img            
                Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng