NHẬP MÔN TIN HỌC
CÁC CẤU TRÚC ĐIỀU KHIỂN
TS Đào Nam Anh
Tài liệu
Slides do TS.Đào Nam Anh thực hiện dựa trên
tài liệu [1] và các mã nguồn [2]:
1. TS.Nguyễn Thị Thu Hà,
TS.Nguyễn Hữu Quỳnh,
TS.Nguyễn Thị Thanh Tân,
Giáo trình Nhập môn tin học,
Khoa CNTT, Đại học Điện lực, 2013
2. Programiz.com
CNTT
Nhập môn tin học
2
Nội dung
CÁC CẤU TRÚC ĐIỀU KHIỂN
U
C
A
N
NG
P
C NH
CÁC CẤU TRÚC ĐIỀU KHIỂN
1.
U
C
A
N
Các cấu trúc lựa chọn cho phép chúng ta thay đổi luồng
chương trình. Dựa trên một điều kiện nào đó, 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 trì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 trì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 trình sẽ thực hiện
một công việc khác.
CNTT
Nhập môn tin học
5
CÁC CẤU TRÚC ĐIỀU KHIỂN
1.
U
C
A
N
Trong C một điều kiện được coi là đúng (true) khi nó có giá trị
khác 0, là sai (false) khi nó có giá trị bằng 0.
C cung cấp hai dạng câu lệnh lựa chọn:
Câu lệnh if
Câu lệnh switch
Sau đây chúng ta hãy tìm hiểu hai câu lệnh lựa chọn này.
CNTT
Nhập môn tin học
7
CÁC CẤU TRÚC ĐIỀU KHIỂN
1.
CÁC CẤU TRÚC ĐIỀU KHIỂN
1.
U
C
A
N
Dạng tổng quát của câu lệnh if:
if (biểu thức)
Các câu lệnh;
Biểu thức phải luôn được đặt trong cặp dấu ngoặc (). Mệnh đề
theo sau từ khoá 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.
CNTT
Nhập môn tin học
9
CÁC CẤU TRÚC ĐIỀU KHIỂN
1.
U
C
A
N
Ví dụ:
#include <stdio.h>
void main()
{
int a = 10, b = 2, max;
if (a > b){
max = a ;
printf(“The max value is: %d”, max) ;
}
}
CNTT
Nhập môn tin học
Với a được gán giá trị
10, b được gán giá trị
2, biểu thức điều kiện
(a>b) có giá trị đúng.
Do đó khối lệnh gắn
với biểu thức if được
thực thi và kết quả của
chương trình như sau:
The max value is: 10
CNTT
Nhập môn tin học
12
CÁC CẤU TRÚC ĐIỀU KHIỂN
1.
U
C
A
N
Ví dụ:
#include <stdio.h>
void main()
{
A
N
Ví dụ:
#include <stdio.h>
void main()
{
int a = 10, b = 2, max;
if (a > b)
max = a ;
}
CNTT
Nhập môn tin học
Khối lệnh sau lệnh if được
đặt trong cặp ngoặc nhọn
{}. Khi có nhiều lệnh cần
được thực hiện, các câu
lệnh đó được coi như một
khối lệnh (block) và phải
được đặt trong cặp dấu {}.
Nếu trong ví dụ trên ta
không đưa vào dấu ngoặc
nhọn ở câu lệnh if, chỉ có
câu lệnh đầu tiên (max = a)
được thực hiện khi điều
kiện trong câu lệnh if là
thức dưới dạng phép (AND)
ký hiệu &&, phép (OR) ký
hiệu ||.
Nhập môn tin học
15
CÁC CẤU TRÚC ĐIỀU KHIỂN
1.
U
C
A
N
Ví dụ: kiểm tra một năm có phải
là năm nhuận hay không.
Năm nhuận là năm chia hết cho 4
hoặc 400 nhưng không chia hết
cho 100.
CNTT
Nhập môn tin học
là năm nhuận hay không.
Năm nhuận là năm chia hết cho 4
hoặc 400 nhưng không chia hết
cho 100.
Chúng ta sử dụng lệnh if để kiểm
tra điều kiện.
Nhập môn tin học
17
CÁC CẤU TRÚC ĐIỀU KHIỂN
1.
U
#include <stdio.h>
void main()
{
int y;
printf(“\nPlease enter a year:”);
scanf(“%d”, &y);
if (y% 4 == 0 && y % 100 != 0
|| y % 400 == 0)
printf(“\n%d is a leap year!”, y);
getch();
}
CNTT
void main()
{
int y;
printf(“\nPlease enter a year:”);
scanf(“%d”, &y);
if (y% 4 == 0 && y % 100 != 0
|| y % 400 == 0)
printf(“\n%d is a leap year!”, y);
getch();
}
CNTT
C
A
N
Điều kiện
year % 4 == 0 &&
year % 100 != 0 ||
year % 400 == 0
trả về giá trị 1 nếu năm đó là
năm nhuận.
Khi đó, chương trình hiển thị
thông báo gồm biến year và dòng
chữ “is a leap year”.
Nếu điều kiện trên không thỏa
mãn, chương trình không hiển thị
thông báo nào.
N
Nếu điều kiện sai
Công việc 2
Nếu điều kiện
đúng
Công việc 1
20
CÁC CẤU TRÚC ĐIỀU KHIỂN
1.
U
Cú pháp câu lệnh rẽ nhánh
dạng này được mô tả như
sau:
if (biểu thức)
câu_lệnh_1;
else
câu_lệnh_2;
C
câu_lệnh_1;
else
câu_lệnh_2;
CNTT
C
A
N
Nếu biểu thức có giá trị đúng
(khác 0) thì câu lệnh 1 được
thực hiện.
Nếu sai (bằng 0), câu lệnh 2
được thực hiện.
Khi có nhiều lệnh cần được
thực hiện, các câu lệnh đó
được coi như một khối lệnh
(block) và phải được đặt
trong cặp dấu {}.
Nhập môn tin học
22
CÁC CẤU TRÚC ĐIỀU KHIỂN
1.
CNTT
Nhập môn tin học
23
CÁC CẤU TRÚC ĐIỀU KHIỂN
1.
U
C
A
N
Ví dụ:
#include <stdio.h>
void main()
{
int a = 10, b = 2, max;
printf(“Input a = ” ) ;
scanf(“%d”, &a);
printf(“Input b = ” ) ;
scanf(“%d”, &b ) ;
if (a > b)
max = a;
#include <stdio.h>
void main()
{
int y;
printf(“\nPlease enter a year:”);
scanf(“%d”, &y);
if (y% 4 == 0 && y % 100 != 0
|| y % 400 == 0)
printf(“\n%d is a leap year!”, y);
getch();
}
CNTT
A
N
Đoạn mã này chỉ hiển thị
thông báo “is a leap year” ra
màn hình nếu là năm nhuận.
Trong trường hợp ngược lại,
nếu năm nhập vào không phải
là năm nhuận, sẽ không có bất
kỳ thông báo nào được in ra.
Điều này có thể gây ra sự hiểu
lầm và đôi chút khó chịu cho
người sử dụng.
Nhập môn tin học