Yêu cầu mọi thông tin sao chép từ blog này phải được ghi rõ đầy đủ: Thông tin được sao chép từ "http://www.dangngochoangthanh.blogspot.com".

Cool wallpaper http://www.fancymessage.com

EMOJI KEYBOARD PRO http://emojiselector.com

THƯ VIỆN HÌNH ĐỘNG FLASH ANIMATION: http://flashanimationlibrary.blogspot.ru/

Hệ thống học trực tuyến đang được phát triển và sẽ đưa vào sử dụng vào cuối năm nay. Hãy xem qua một số demo của Học Trực Tuyến.


HỌC TRỰC TUYẾN ĐÃ CUNG CẤP PHIÊN BẢN TRUY CẬP QUA MOBILE http://dangngochoangthanh.blogspot.com/?m=1

XEM KÊNH HỌC TRỰC TUYẾN TRÊN YOUTUBE



Search on This Blog

Saturday, September 11, 2010

Cấu trúc lựa chọn: switch

Câu lệnh lựa chọn có cấu trúc như sau:

Cú pháp:
    switch(biểu_thức)
    { 
        case hằng_1:
            nhóm_các_lệnh;
            break;
        case hằng_2:
            nhóm_các_lệnh;
            break;
        …
        default:
         nhóm_các_lệnh;
    }
    


Giải thích: kiểm tra giá trị của biểu thức, nếu giá trị của biểu thức rơi vào danh sách hằng, thì nó sẽ thực hiện các lệnh tương ứng trong từng trường hợp case (nếu là hằng_1 – các lệnh trong trường hợp case hằng_1, ….). Nếu biểu thức không thuộc vào danh sách hằng, thì nó sẽ thực hiện lệnh trong trường hợp default.
#include <iostream>
using namespace std;
int main()
{
    char n;
    cout<<"Ban la nam hay nu b/g:"
    cin>>n;
    switch(n)
    {
        case 'b':
            cout<<"Nam";
            break;
        case 'g':
            cout<<"Nu";
            break;
        default:
         cout<<"Khong xac dinh";
    }
    return   0;
}
    

Chương trình Kết quả
Ban la nam hay nu b/g:b Nam
Giải thích: chương trình buộc người dùng nhập vào một kí tự (b – boy) hay (g – girl). Nếu người dùng nhập vào một kí tự khác, chương trình vẫn tính đến trường hợp này. Kí tự mà người dùng nhập vào được lưu trong biến n. Câu lệnh switch sẽ kiểm tra biến nhập vào đó có nằm trong danh sách hằng hay không (danh sách hằng ở đây là ‘b’ và ‘g’). Nếu có, thì tương ứng với ‘b’ nó sẽ thực hiện trường hợp case ’b’, nếu là ‘g’ nó sẽ thực hiện trường hợp case ‘g’. Lệnh break trong mỗi trường hợp có tác dụng là thoát ra khỏi câu lệnh lựa chọn (cũng mang tính lặp), nếu không có lệnh break, tất cả các trường hợp đều được xét duyệt và nếu rơi vào trường hợp nào thì các lệnh tương ứng sẽ được thực thi, đồng thời lệnh ở trường hợp bên dưới nó cũng được thực thi. Trong trường hợp, kí tự nhập vào không tương ứng trong danh sách hằng, nó sẽ thực thi trường hợp default. Vì default là trường hợp cuối cùng, nên nó không cần lệnh break.
Chú ý:
Lệnh switch chỉ được lựa chọn để sử dụng khi cần kiểm tra giá trị của một biểu thức có tương ứng với một tập các hằng số nào đó hay không (sự tương ứng ở đây có thể là thuộc hoặc không thuộc tương ứng với khái niệm trong tập hợp). Các hằng_1, hằng_2,… có thể là một vùng liên tục, hoặc gián đoạn (như các số từ 0..1, ‘a’..’d’,…). Nhưng nhất thiết các giá trị tương ứng với các trường hợp case phải là hằng số (hoặc khoảng hằng).
Biểu thức trong lệnh switch nhất thiết không phải là một kiểu có cấu trúc (mảng, xâu, tập hợp…). Ví dụ sau đây sẽ phát sinh lỗi khi biên dịch, do biểu thức tương ứng với một xâu.
    string s = "abc";
    switch(s)
    {
       case "a":
       case "ab":
       case "abc":
       default:
    }
    
Error Trong hầu hết các ngôn ngữ lập trình, đại đa số đều không cho phép tham số trong switch là một xâu (cũng như lệnh case of trong họ Pascal – Delphi). Tuy nhiên, ngôn ngữ C# vẫn hỗ trợ xâu kí tự trong tham số của switch dù nó là một dẫn xuất của C++.
Một điều bạn cần lưu ý, về bản chất thì câu lệnh switch sẽ tương ứng với một dãy các câu lệnh if. Chúng hoàn toàn có thể thay thế cho nhau. Cũng tương tự, các câu lệnh lặp while, do..while và for cũng có thể thay thế cho nhau. Tuy nhiên, chúng vẫn được sử dụng trong các trường hợp mang tính đặc trưng của chúng. Bảng sau đây tổng hợp các cách sử dụng của các lệnh có cấu trúc thường được sử dụng.
Tên lệnh Cách dùng
if…else Khi cần kiểm tra một hoặc một vài điều kiện mang tính chất logic.
switch Khi cần kiểm tra điều kiện tương ứng hoặc thuộc vào của một biến số trong một danh sách hằng tương ứng.
for Lặp có số vòng lặp xác định
while Cần kiểm tra điều kiện lặp trước khi thực hiện lệnh, lặp không xác định số vòng lặp.
do…while Kiểm tra điều kiện lặp sau khi thực hiện lệnh, lặp không xác định số vòng lặp.
break Cần thoát khỏi vòng lặp.
continue Bỏ qua vòng lặp hiện tại.
goto Nhảy đến một nhãn được chỉ đinh. Nên tránh sử dụng, chỉ sử dụng trong những trường hợp thực sự cần thiết.
Bài tập 6.
  1. Sử dụng các cấu trúc lặp for, while, do…while, goto để xây dựng các chương trình tính tích phân sau (với mỗi cấu trúc xây dựng mỗi chương trình) bằng phương pháp hình chữ nhật (trái, phải hoặc trung tọa).

  1. Lựa chọn cấu trúc lệnh phù hợp, để tính giá trị của chuỗi hữu hạn sau đây

No comments:

Post a Comment