Bài 5: Câu lệnh điều kiện

0
1685

5.1 Lệnh if

Câu lệnh if cho phép lựa chọn một trong hai nhánh tùy thuộc vào giá trị của biểu thức logic là đúng (true) hay sai (false)

– Dạng 1

Cú pháp:

if (bt_logic)

<khối lệnh>;

           

Diễn giải: Nếu bt_logic có giá trị đúng thì thực hiện khối lệnh và thoát khỏi if, ngược lại không làm gì cả và thoát khỏi if.

 

Ví dụ 1: Viết chương trình nhập vào 2 số nguyên a, b. Tìm và in ra số lớn nhất.

 

a. Phác họa lời giải:

Trước tiên ta cho giá trị a là giá trị lớn nhất bằng cách gán a cho max (max là biến được khai báo cùng kiểu dữ liệu với a, b). Sau đó so sánh b với a, nếu b lớn hơn a ta gán b cho max và cuối cùng ta được kết quả max là giá trị lớn nhất.

b. Viết chương trình

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
void  main(void){
            int ia, ib, imax;
            printf("Nhap vao so a: ");
            scanf("%d", &ia);
            printf("Nhap vao so b: ");
            scanf("%d", &ib);
            imax = ia;
            if (ib > ia)
                        imax = ib;
            printf("So lon nhat = %d.\n", imax);
}

– Dạng 2

Cú pháp:

if (bt_logic)

<khối lệnh 1>;

                        else

                                    <Khối lệnh 2>;

Diễn giải: Nếu bt_logic có giá trị đúng thì thực hiện khối lệnh 1 và thoát khỏi if, ngược lại thực hiện khối lệnh 2 và thoát khỏi if.

 

Ví dụ 2: Viết chương trình nhập vào 2 số nguyên a, b. In ra thông báo “a bằng b” nếu a = b, ngược lại in ra thông báo “a khác b”.

 

a. Phác họa lời giải:

So sánh a với b, nếu a bằng b thì in ra câu thông báo “a bằng b”, ngược lại in ra thông báo “a khác b”.

b. Viết chương trình:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
void main(void)
{
     int ia, ib;
     printf("Nhap vao so a: ");
     scanf("%d", &ia);
     printf("Nhap vao so b: ");
     scanf("%d", &ib);
if (ia == ib)
     printf("a bang b\n");
else
     printf("a khac b\n");
}

 

?Lưu ý:  Nếu <khối lệnh>, bao gồm từ 2 lệnh trở lên thì phải đặt trong cặp dấu {}

 

4.2 Cấu trúc if …else if

 

Cú pháp:

if (bt_logic1)

khối lệnh 1;

else if (bt_logic 2)

khối lệnh 2;

else if (bt_logic n-1)

khối lệnh n-1;

else

khối lệnh n;

 

Diễn giải: Nếu bt_logic 1 có giá trị đúngthì thực hiện khối lệnh 1 và thoát khỏi cấu trúc if. Ngược lại, nếu bt_logic 2 có giá trị đúngthì thực hiện khối lệnh 2 và thoát khỏi cấu trúc if.

Ngược lại, nếu bt_logic n-1 đúngthì thực hiện khối lệnh n-1 và thoát khỏi cấu trúc if, ngược lại thì thực hiện khối lệnh n.

 

Ví dụ 3: Viết chương trình nhập vào 2 số nguyên a, b. In ra thông báo “a lớn hơn b” nếu a>b, in ra thông báo “a nhỏ hơn b” nếu a<b, in ra thông báo “a bằng b” nếu a=b.

 

a. Phác họa lời giải

Trước tiên so sánh a với b. Nếu a > b thì in ra thông báo “a lớn hơn b”, ngược lại nếu a < b thì in ra thông báo “a nhỏ hơn b”, ngược với 2 trường hợp trên thì in ra thông báo “a bằng b”.

b. Viết chương trình:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <Stdio.h>
void main(void)
{
int ia, ib;
     printf("Nhap vao so a: ");scanf("%d", &ia);
     printf("Nhap vao so b: ");scanf("%d", &ib);
if (ia>ib)
     printf("a lon hon b.\n");
else if...}

 

4.3 Lệnh switch

Cú pháp:

 

switch (biểu thức)

{

case giá trị 1 : khối lệnh 1;

            break;

case giá trị 2 : khối lệnh 2;

break;

case giá trị n : khối lệnh n;

break;

default : khối lệnh;

[break;]

}

 

Diễn giải: Khi giá trị của biểu thức bằng giá trị i thì lệnh i sẽ được thực hiện. Nếu saulệnh i không có lệnh break thì tiếp tục thực hiện các lệnh sau nó. Ngược lại thoát khỏi  cấu trúc switch. Nếu giá trị biểu thức không trùng với bất kỳ giá trị i nào thì lệnh tương ứng với từ khóa default sẽ được thực hiện.

 

Lưu ý:

– Không đặt dấu chấm phẩy sau câu lệnh switch.

– Biểu thức phải là có kết quả làgiá trị nguyên (char, int, long,…)

Lệnh 1, 2…n có thể gồm nhiều lệnh, nhưng không cần đặt trong cặp dấu { }

 

Ví dụ 4: Nhập vào một tháng trong năm, cho biết tháng này thuộc quý nào trong năm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio>
#include <stdio>
void main(void)
{
int ithang;
printf("Nhap vao thang: ");
scanf("%d", &ithang);
switch(ithang)
{
    case 1: case 2: case 3 : printf("Quy 1.\n");break;
    case 4: case 5: case 6: printf("Quy 2.\n");break;
    case 7: case 8: case 9: printf("Quy 3.\n");break;
    case 10: case 11: case 12: printf("Quy 4.\n");break;
    default : printf("Phai nhap vao so trong khoang 1..12\n");
}
getch(); //Dừng màn hình để xem kết quả, gõ phím bất kỳ để tiếp tục
}

Leave a Reply