www.uit.edu.vn
TIN HỌC ĐẠI CƯƠNG
BÀI 4
CÁC CÂU LỆNH TRÊN C
1
NỘI DUNG
4
CÁC CÂU LỆNH TRÊN C
Tin học đại cương
2
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
Tin học đại cương
3
CÂU LỆNH, KHỐI LỆNH
KHÁI NIỆM VỀ CÂU LỆNH
Mỗ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ụ:
Tin học đại cương
cv = 2*r*M_PI;
printf("\nChu vi = %10.2f \
\nDien tich =%10.2f",
cv,dt);
4
CÂU LỆNH, KHỐI LỆNH
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ụ:
{
Tin học đại cương
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
}
5
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)
Tin học đại cương
<khối lệnh 1>;
else
<khối lệnh 2>;
6
CÂU LỆNH IF
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.
Tin học đại cương
max = a; min = b;
if (a>b)
if (a
{
{
max = a;
max = b;
min = b;
min = a;
}
}
else
if (c>max) max = c;
{
else if (c
mid = (a+b+c) - (max + min);
min = a;
}
printf(“%d %d %d”, min, mid,
max);
7
LỆNH SWITCH
CÚ PHÁP KHAI BÁO LỆNH SWITCH
switch (Biểu thức)
{
Tin học đại cương
case n1: <các câu lệnh>;
;
case n2: <các câu lệnh>; ;
....
case nk: <các câu lệnh>; ;
[default: <các câu lệnh>;
;]
}
8
LỆNH SWITCH
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 thốt khỏi
switch.
Tin học đại cương
9
LỆNH SWITCH
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 ln 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 thố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.
Tin học đại cương
10
LỆNH SWITCH
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.
Tin học đại cương
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
11
LỆNH FOR
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>
Tin học đại cương
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
12
LỆNH FOR
VÍ DỤ MINH HỌA
Tin học đại cương
#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();
}
13
LỆNH WHILE
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>.
Tin học đại cương
14
LỆNH WHILE
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 = 0
printf(“%3d”, i );
i--;
}
Tin học đại cương
Vòng lặp while sẽ thực hiện đến khi i = 0 thì
dừng.
15
LỆNH DO … WHILE
CÚ PHÁP KHAI BÁO LỆNH DO…WHILE
do
{
<khối lệnh>;
}while (biểu thức);
Ý nghĩa:
Tin học đại cương
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.
16
LỆNH DO … WHILE
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);
Tin học đại cương
Nhập giá trị của x, nếu x<1 hoặc x>6 thì yêu cầu
nhập lại.
17
MỘT SỐ CÂU LỆNH KHÁC
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.
Tin học đại cương
18
MỘT SỐ CÂU LỆNH KHÁC
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().
Tin học đại cương
void main(){
…
// Khai báo biến
tt:
clrscr();
…
// Các câu lệnh
printf(“\nNhan ESC \
de ket thuc chuong trinh...”);
if (getch() != 27)
// getch(): chờ nhấn phím bất kỳ
goto tt;
}
19
MỘT SỐ CÂU LỆNH KHÁC
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ẽ thốt khỏi
vịng lặp trong cùng chứa nó.
Tin học đại cương
20
MỘT SỐ CÂU LỆNH KHÁC
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?
Tin học đại cương
int i, t;
t = sqrt(n);
i = 2;
while ( i<=t )
if (n%i == 0)
break; // kết thúc vòng lặp
else
i++;
if (i>t)
printf(“%d là SNT”, n);
else
printf(“%d khong la SNT”, n);
21
MỘT SỐ CÂU LỆNH KHÁC
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.
Tin học đại cương
22
MỘT SỐ CÂU LỆNH KHÁC
VÍ DỤ MINH HỌA LỆNH CONTINUE
Tin học đại cương
…
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
}
…
23
MỘT SỐ CÂU LỆNH KHÁC
LỆNH RETURN
Khi gặp lệnh return máy sẽ kết thúc hàm
chứa nó.
Tin học đại cương
24
MỘT SỐ CÂU LỆNH KHÁC
VÍ DỤ MINH HỌA LỆNH RETURN
Tin học đại cương
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
}
…
}
25