PDA

View Full Version : Lư thuyết " Giáo tŕnh ngôn ngữ C Aptech"(Bài 7 : Điều kiện - Lư thuyết)


x9nd
05-23-2009, 04:25 PM
Bài 7 : Điều kiện - Lư thuyết

Giới thiệu

- Các vấn đề được đề cập từ đầu đến nay cho phép chúng ta viết nhiều chương tŕnh. Tuy nhiên các chương tŕnh đó có nhược điểm là bất cứ khi nào được chạy, chúng luôn thực hiện một chuỗi các thao tác giống nhau, theo cách thức giông nhau. Trong khi đó, chúng ta thường xuyên chỉ cho phép thực hiện các thao tác nhất định nếu nó thỏa măn điều kiện đặt ra.

1. Cậu lênh điều kiện là ǵ?

- Các câu lện điều kiện cho phép chúng ta thay đổi luồng chương tŕnh. Dựa trên một điều kiện đó, một cậu lệnh hay một chuỗi các câu lệnh có thể được thực hiện hoặc không. Hầu hết các ngôn ngữ lập tŕnh đều sử dụng lênh if để đưa ra điều kiện. Nguyên tắc thực hiện như sau nếu điều kiện đưa ra là đúng (true), chương tŕnh sẽ thực hiện một công việc nào đó, nếu điều kiện đưa ra là sai (false), chương tŕnh sẽ thực hiện một công việc khác.

2. Các câu lệnh lựa chọn:

- Câu lệnh if.
- Câu lệnh switch.

3. Câu lệnh "if"

- Cho phép ta đưa ra các quyết định dụa trên việc kiểm tra một điều kiện nào đó là đúng(true) hay sai(false). Cấu trúc câu lệnh

Code:

if (biểu thức)
Các câu lệnh;

- Biểu thức phải luôn đặt trong dấu ngoặc (). Mệnh đề theo sau từ khóa if là một điều kiện (hoặc một biểu thức điều kiện) cần được kiểm tra. Tiếp đến là một lệnh hay một tập các lệnh sẽ được thực thi khi điều kiện (hoặc biểu thức điều kiện) có kết quả true.

4. Câu lệnh "if...else"

- Ở trên chúng ta biết dạng đơn giải nhất của câu lệnh if, cho phép chúng ta lựa chọn để thực hiện hay không một câu lệnh hoặc một chuỗi các lệnh. C cũng cho phép ta lựa chọn trong hai khối lệnh để thực hiện bằng cách dùng cấu trúc if...else. Cú pháp như sau:

Code:

if (biểu thức)
{
câu lệnh 1;
}
else
{
câu lệnh 2;
}

- Nếu biểu thức điều kiện trên đúng (khác 0), câu lệnh 1 được thực hiện. Nếu nó sai (khác 0) câu lệnh 2 được thực hiện. Câu lệnh sau if và else có thể là lệnh đơn hoặc lệnh phức. Các câu lệnh đó nên được lùi vào trong ḍng mặc dù không bắt buộc. Cách viết đó giúp ta nh́n thấy ngay những lệnh nào sẽ được thực hiện tùy theo kết quả của biểu thức điều kiện. Các lệnh if *****g nhau là lệnh if bên trong một lệnh if khác.

5. Câu lệnh "switch"

- Câu lệnh switch cho phép ta đưa ra quyết định co nhiều cách lựa chọn, nó kiểm tra giá trị của một biểu thức trên một danh sách các hằng số nguyên hoặc kư tự. Khi nó t́m thấy một giá trị trong danh sách trùng với giá trị của biểu thức điều kiện, các câu lệnh gắn với giá trị đó sẽ được thực hiện. Cú pháp tổng quát của lệnh switch như sau:

Code:

switch (biểu thức)
{
case hằng 1:
chuỗi câu lệnh;
break;
case hằng 2:
chuỗi câu lệnh;
break;
case hằng 2:
chuỗi câu lệnh;
break;
default:
chuỗi câu lệnh;
}

- Ở đó, switch, case và default là các từ khóa, "chuỗi câu lệnh" có thể là lệnh đơn hoặc lện ghép và không cần đặt trong cặp dấu ngoặc. "biểu thức" theo sau từ khóa switch phải được đặt trong dấu ngoặc (), và toàn bộ phần thân của lệnh switch phải được đặt trong cặp ngoặc nhọn {}. Kiểu dữ liệu kết quả của "biểu thức" và kiểu dữ liệu của các hằng theo sau từ khóa case phải đồng nhất. Chú ư, hằng số sau case chỉ có thể là một hằng số nguyên hoặc hằng kư tự. Nó cũng có thể là các hằng biểu thức - những biểu thức không chứa bất kỳ một biến nào. Tất cả các giá trị của case phải khác nhau.
- Trong câu lệnh switch, biểu thức được xác định giá trị, giá trị của nó được so sánh với từng giá trị gắn với từng case theo thứ tự đă chỉ ra. Nếu một giá trị trong một case trùng với giá trị của biểu thức, các lệnh gắn với case đó sẽ được thực hiện. Lệnh break (sẽ nói ở phần sau) cho phép thoát ra khỏi switch. Nếu không dùng lệnh break, các câu lệnh gắn với case bên dưới sẽ được thực hiện không kể giá trị của nó có trùng với giá trị của biểu thức điều kiện hay không. Chương tŕnh cứ tiếp tục hiện như vậy cho đến khi gặp một lệnh break. Chính v́ thế, lệnh break được coi là lệnh quan trọng nhất khi dùng switch.
- Các câu lệnh gắn với default sẽ được thực hiện nếu không có case nào thỏa măn. Lệnh default là tùy chọn. Nếu không có lệnh default và không có case nào thỏa măn, không có hành động nào được thực hiện. Có thể thay đổi thứ tự của case và default.

Hết bài 7

Bài tập tự làm

1. Viết chương tŕnh nhập vào hai số a và b, và kiểm tra xem a có chia hết cho b hay không.

2. Viêt chương tŕnh nhập vào hai số và kiểm tra xem tích của hai số này bằng hay lớn hơn 1000.

3. Viêt chương tŕnh nhập vào hai số. Tính hiệu của hai số này. Nếu hiệu số này bằng với một trong hai số đă nhập th́ hiển thị thông tin:

Code:

Hiệu bằng giá trị <giá trị của sô đă nhập vào>
Nếu hiệu không bằng với một trong hai giá trị đă nhập, hiển thị thông tin:
Hiệu không bằng bất kỳ giá trị nào đă được nhập

4. Công ty Montek đưa ra mực trợ cấp cho nhân viên ứng với từng loại nhân viên như sau:

Code:

Loại nhân viên - Mức trợ cấp
A 300
B 250
Những loại khác 100

- Tính lương cuối tháng của nhân viên (Mưc lương và loại nhân viên được nhập từ người dùng).

5. Viết chương tŕnh xếp loại sinh viên theo các qui luật dưới đây:

Code:

Nếu điểm => 75 - Loại A
Nếu 60 <= điểm < 75 - Loại B
Nếu 45 <= điểm < 60 - Loại C
Nếu 35 <= điểm < 45 - Loại D
Nếu điểm > 35 - Loại E
(Bài 8 : Điều kiện - Thực hành)