26
1 TIN HỌC ĐẠI CƯƠNG www.uit.edu.vn BÀI 8 BÀI 8 CÁC CÂU LỆNH TRÊN C CÁC CÂU LỆNH TRÊN C

Thdc 08

Embed Size (px)

Citation preview

Page 1: Thdc 08

1

TIN HỌC ĐẠI CƯƠNG

www.uit.edu.vn

BÀI 8BÀI 8

CÁC CÂU LỆNH TRÊN CCÁC CÂU LỆNH TRÊN C

Page 2: Thdc 08

Tin

họ

c đ

ại

cươ

ng

2

NỘI DUNGNỘI DUNG

CÁC CÂU LỆNH TRÊN C4

Page 3: Thdc 08

Tin

họ

c đ

ại

cươ

ng

3

CÁC CÂU LỆNH TRÊN C

1. Lệnh if

2. Lệnh switch

3. Lệnh for

4. Lệnh while

5. Lệnh do … while

6. Lệnh goto, break, continue, return

Page 4: Thdc 08

Tin

họ

c đ

ại

cươ

ng

4

CÂU LỆNH, KHỐI LỆNH

KHÁI NIỆM VỀ CÂU LỆNHMỗi câu lệnh thực hiện một chức năng nào đó (như lệnh gán, lệnh xuất dữ liệu ra màn hình), câu lệnh có thể được viết trên một hoặc nhiều dòng và được kết thúc bằng dấu chấm phẩy (;).

Ví dụ: cv=2*r*M_PI;

printf("\nChu vi = %10.2f \ \nDien tich = %10.2f",cv,dt);

Page 5: Thdc 08

Tin

họ

c đ

ại

cươ

ng

5

KHÁI NIỆM VỀ KHỐI LỆNH

Một dãy các câu lệnh được đặt trong một cặp dấu { và } được gọi là một khối lệnh.

Ví dụ:{ float cv,dt; cv=2*r*M_PI; dt=M_PI*r*r; printf("\nChu vi = %10.2f \

\nDien tich = %10.2f”, cv, dt); getch(); // chờ nhấn phím}

CÂU LỆNH, KHỐI LỆNH

Page 6: Thdc 08

Tin

họ

c đ

ại

cươ

ng

6

CÂU LỆNH IF

CÚ PHÁP KHAI BÁO LỆNH IF

Dạng 1:

if (biểu thức ĐK) <khối lệnh>;

Dạng 2:

if (biểu thức ĐK) <khối lệnh 1>;

else <khối lệnh 2>;

Page 7: Thdc 08

Tin

họ

c đ

ại

cươ

ng

7

VÍ DỤ MINH HỌA

Cho 3 số nguyên a, b và c, xuất giá trị 3 số đó ra màn hình theo thứ tự tăng dần.max = a; min = b;if (a<b)

{ max = b; min = a;

}if (c>max) max = c;else if (c<min) min = c;mid = (a+b+c) - (max + min);printf(“%d %d %d”, min, mid, max);

CÂU LỆNH IF

Page 8: Thdc 08

Tin

họ

c đ

ại

cươ

ng

8

CÚ PHÁP KHAI BÁO LỆNH SWITCH

switch (Biểu thức)

{

case n1: <các câu lệnh>; <break>;

case n2: <các câu lệnh>; <break>;

....

case nk: <các câu lệnh>; <break>;

[default: <các câu lệnh>;

<break>;]

}

LỆNH SWITCH

Page 9: Thdc 08

Tin

họ

c đ

ại

cươ

ng

9

ni: các hằng số nguyên hoặc ký tự.

Nếu giá trị của biểu thức = ni ⇒ thực hiện câu lệnh sau case ni.

Nếu giá trị biểu thức khác tất cả các giá trị ni ⇒ thực hiện câu lệnh sau default nếu có hoặc thoát khỏi switch.

LỆNH SWITCH

Page 10: Thdc 08

Tin

họ

c đ

ại

cươ

ng

10

Khi chương trình đã thực hiện xong câu lệnh của case ni nào đó thì nó sẽ thực hiện luôn các câu lệnh thuộc case bên dưới nó mà không xét lại điều kiện (do các ni được xem như các nhãn).

Do đó để chương trình thoát khỏi lệnh switch, sau khi thực hiện xong một trường hợp, ta dùng lệnh break.

LỆNH SWITCH

Page 11: Thdc 08

Tin

họ

c đ

ại

cươ

ng

11

VÍ DỤ MINH HỌA

In ra màn hình học lực của học sinh theo thang điểm như sau: Từ 0 -> 3: Kém, 4: Yếu, 5-> 6: Trung bình, 7 -> 8: Khá, 9 -> 10: Giỏi.

switch(diem){

case 0: case 1: case 2: case 3: printf(“Kem\n”); break;

case 4: printf(“Yeu\n”); break;case 5: case 6:

printf(“Trung binh\n”); break;case 7: case 8: printf(“Kha\n”); break;case 9: case 10:

printf(“Gioi\n”); break;default: printf(“Nhap diem sai\n”);

} // Kết thúc switch

LỆNH SWITCHLỆNH SWITCH

Page 12: Thdc 08

Tin

họ

c đ

ại

cươ

ng

12

CÚ PHÁP KHAI BÁO LỆNH FOR

for (<biểuthức1>; <biểuthức2>;

<biểuthức3>) <Khối lệnh>;

Hoạt động:

1. Tính giá trị của <biểuthức1>

2. Tính giá trị của <biểuthức2>

3. Nếu giá trị <biểuthức2> khác 0 ⇒ thực hiện <khối lệnh>

Ngược lại ⇒ thoát khỏi lệnh for

4. Tính giá trị <biểuthức3> rồi lặp lại bước 2

LỆNH FOR

Page 13: Thdc 08

Tin

họ

c đ

ại

cươ

ng

13

VÍ DỤ MINH HỌA

#include <stdio.h>#include <conio.h>void main(){

int n, i;printf(“Nhap gia tri n: ”); scanf(“%d”, &n);printf(“Cac uoc so cua %d la: ”, n);for (i =1; i <= n; i++) if ( !n%i ) // !n%i n%i=0

printf(“%3d”, i ); getch();

}

LỆNH FOR

Page 14: Thdc 08

Tin

họ

c đ

ại

cươ

ng

14

CÚ PHÁP KHAI BÁO LỆNH WHILE

while (biểu thức) <khối lệnh>;

Ý nghĩa:

Nếu giá trị của biểu thức còn khác 0 (còn đúng) thì còn thực hiện <khối lệnh>.

LỆNH WHILE

Page 15: Thdc 08

Tin

họ

c đ

ại

cươ

ng

15

VÍ DỤ MINH HỌA

In ra màn hình tất cả các ước số của n:

i = n;while (i) // i ! = 0{

if ( !n%i ) // n%i = 0printf(“%3d”, i );

i--;}

Vòng lặp while sẽ thực hiện đến khi i = 0 thì dừng.

LỆNH WHILE

Page 16: Thdc 08

Tin

họ

c đ

ại

cươ

ng

16

CÚ PHÁP KHAI BÁO LỆNH DO…WHILE

do {

<khối lệnh>;}while (biểu thức);

Ý nghĩa:

Thực hiện <khối lệnh> cho đến khi giá trị của biểu thức bằng 0 (sai) thì dừng.

LỆNH DO … WHILE

Page 17: Thdc 08

Tin

họ

c đ

ại

cươ

ng

17

VÍ DỤ MINH HỌA

Viết đoạn chương trình nhập giá trị của x nằm trong khoảng từ 1->6:

int x;do

{printf(“Nhap gia tri cua x:”); scanf(“%d”, &x);

} while (x<1 || x>6);

Nhập giá trị của x, nếu x<1 hoặc x>6 thì yêu cầu nhập lại.

LỆNH DO … WHILE

Page 18: Thdc 08

Tin

họ

c đ

ại

cươ

ng

18

LỆNH GOTO

Cú pháp khai báo

goto nhãn;

Khi gặp lệnh goto máy sẽ nhảy tới thực hiện câu lệnh viết sau nhãn.

MỘT SỐ CÂU LỆNH KHÁC

Page 19: Thdc 08

Tin

họ

c đ

ại

cươ

ng

19

VÍ DỤ MINH HỌA LỆNH GOTO

Nếu mã của phím nhấn vào != ESC thì thực hiện lại chương trình kể từ câu lệnh clrscr().

void main(){… // Khai báo biếntt:clrscr();… // Các câu lệnhprintf(“\nNhan ESC \

de ket thuc chuong trinh...”);if (getch() != 27) // getch(): chờ nhấn phím bất kỳ goto tt;

}

MỘT SỐ CÂU LỆNH KHÁC

Page 20: Thdc 08

Tin

họ

c đ

ại

cươ

ng

20

LỆNH BREAK

Lệnh break chỉ được khai báo bên trong

các câu lệnh vòng lặp for, while, do…

while hoặc switch.

Khi gặp câu lệnh break máy sẽ thoát khỏi

vòng lặp trong cùng chứa nó.

MỘT SỐ CÂU LỆNH KHÁC

Page 21: Thdc 08

Tin

họ

c đ

ại

cươ

ng

21

VÍ DỤ MINH HỌA LỆNH BREAK

Viết đoạn chương trình kiểm tra n có phải là số nguyên tố không?

int i, t;t = sqrt(n);i = 2;

while ( i<=t )if (n%i == 0)

break; // kết thúc vòng lặpelse i++;

if (i>t) printf(“%d là SNT”, n);else printf(“%d khong la SNT”, n);

MỘT SỐ CÂU LỆNH KHÁC

Page 22: Thdc 08

Tin

họ

c đ

ại

cươ

ng

22

LỆNH CONTINUE

Lệnh continue chỉ được khai báo bên trong các vòng lặp for, while hoặc do…while

Khi gặp câu lệnh continue máy sẽ bỏ qua các câu lệnh còn lại trong thân vòng lặp để bắt đầu một lần lặp mới.

MỘT SỐ CÂU LỆNH KHÁC

Page 23: Thdc 08

Tin

họ

c đ

ại

cươ

ng

23

VÍ DỤ MINH HỌA LỆNH CONTINUE

…int code;while (1) // vòng lặp vô hạn{

printf(“Hay cho biet mat ma: ”);scanf(“%d”, &code);if (code != 999)

continue;break;// đã nhập đúng, kết thúc vòng lặp

}…

MỘT SỐ CÂU LỆNH KHÁC

Page 24: Thdc 08

Tin

họ

c đ

ại

cươ

ng

24

LỆNH RETURN

Khi gặp lệnh return máy sẽ kết thúc hàm chứa nó.

MỘT SỐ CÂU LỆNH KHÁC

Page 25: Thdc 08

Tin

họ

c đ

ại

cươ

ng

25

VÍ DỤ MINH HỌA LỆNH RETURN

void main(){ …

int code;while(1) {

printf(“Hay cho biet mat ma: ”);scanf(“%d”, &code);if (code == 0) return; if (code != 999) continue;break; // nhập đúng, kthúc vòng lặp

}…

}

MỘT SỐ CÂU LỆNH KHÁC

Page 26: Thdc 08

26

www.uit.edu.vn