Tài liệu Ngôn ngữ lập trình - Chương II: Luồng điều khiển - Nguyễn Xuân Hùng: Giảng viên: Nguyễn Xuân Hùng
Mobile: 0908 386 366
Email: nguyenxuanhung@wru.vn
CHƯƠNG II. LUỒNG ĐIỀU
KHIỂN
NGÔN NGỮ LẬP TRÌNH
Nguyễn Xuân Hùng – Khoa CNTT – Trường Đại học Thủy Lợi
NỘI DUNG
1. Biểu thức Boolean.
2. Cấu trúc rẽ nhánh.
3. Vòng lặp.
12/24/20142 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Biểu thức Boolean
• Một biểu thức Boolean là một biểu thức có giá trị true
hoặc false.
• Các toán tử dùng trong biểu thức boolean:
• Toán tử quan hệ: >, = , <=, != (khác), == (bằng), ! (đảo)
• Toán tử boolean: && (và), || (hoặc)
Ví dụ:
(x > 2) && (y != 5)
(x == 1) || ( y <= 10)
12/24/20143 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Biểu thức Boolean
1.1 Đánh giá biểu thức boolean
• Bạn có thể gán biểu thức boolean cho biến kiểu bool
Ví dụ:
bool result = (x < y) && ( z < y);
• Cách đánh giá biểu thức boolean
Ví dụ với biểu thức toán học:
(x + 1) * (x + 3)
với x= 2 ta được kết quả là 15.
Ví dụ với biểu thức boolean:
!( ( y 7) )
với y ...
38 trang |
Chia sẻ: putihuynh11 | Lượt xem: 670 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Ngôn ngữ lập trình - Chương II: Luồng điều khiển - Nguyễn Xuân Hùng, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Giảng viên: Nguyễn Xuân Hùng
Mobile: 0908 386 366
Email: nguyenxuanhung@wru.vn
CHƯƠNG II. LUỒNG ĐIỀU
KHIỂN
NGÔN NGỮ LẬP TRÌNH
Nguyễn Xuân Hùng – Khoa CNTT – Trường Đại học Thủy Lợi
NỘI DUNG
1. Biểu thức Boolean.
2. Cấu trúc rẽ nhánh.
3. Vòng lặp.
12/24/20142 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Biểu thức Boolean
• Một biểu thức Boolean là một biểu thức có giá trị true
hoặc false.
• Các toán tử dùng trong biểu thức boolean:
• Toán tử quan hệ: >, = , <=, != (khác), == (bằng), ! (đảo)
• Toán tử boolean: && (và), || (hoặc)
Ví dụ:
(x > 2) && (y != 5)
(x == 1) || ( y <= 10)
12/24/20143 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Biểu thức Boolean
1.1 Đánh giá biểu thức boolean
• Bạn có thể gán biểu thức boolean cho biến kiểu bool
Ví dụ:
bool result = (x < y) && ( z < y);
• Cách đánh giá biểu thức boolean
Ví dụ với biểu thức toán học:
(x + 1) * (x + 3)
với x= 2 ta được kết quả là 15.
Ví dụ với biểu thức boolean:
!( ( y 7) )
với y = 8 kết quả là false;
12/24/20144 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Biểu thức Boolean
1.1 Đánh giá biểu thức boolean
• Bảng chân lý một số phép toán:
12/24/20145 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Biểu thức A Biểu thức B A && B A || B ! A
false false false false true
false true false true true
true false false true false
true true true true false
1. Biểu thức Boolean
1.2 Quy tắc ưu tiên của biểu thức boolean
• Nếu trong biểu thức boolean không có đầy đủ dấu ngoặc,
thứ tự ưu tiên phép toán như sau:
• Phép đảo: !
• Các phép toán quan hệ: >, =, <=, ==,
• Các phép toán boolean: &&, ||
• Chú ý: Cách tốt nhất là chúng ta nên để dấu ngoặc đơn
• Ví dụ:
(temperature > 90) && (humidity > 0.90) && (poolGate == OPEN)
12/24/20146 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Biểu thức Boolean
1.2 Quy tắc ưu tiên của biểu thức boolean
• Toán tử có độ ưu tiên hơn được thực thi trước và các toán tử
có cùng độ ưu tiên được thực thi từ phải qua trái.
Ví dụ: x = y = z có nghĩa là x = (y = z).
Bảng độ ưu tiên của các toán tử:
• Các toán hạng hai ngôi khác mà có cùng độ ưu tiên sẽ được
thực thi từ trái qua phải.
Ví dụ: x + y + z sẽ có nghĩa là (x + y) + z.
12/24/20147 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Biểu thức Boolean
1.2 Quy tắc ưu tiên của biểu thức boolean
• Ví dụ khác:
x + 1 > 2 || x + 1 < -3
Qui tắc quyền ưu tiên nói rằng đầu tiên áp dụng toán tử một
ngôi -, sau đó áp dụng +, sau đó là > và < và cuối cùng là áp
dụng ||.
Biểu thức trên tương ứng với biểu thức đầy đủ dấu ngoặc
sau:
((x + 1) > 2) || ((x + 1) < -3)
12/24/20148 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
1. Biểu thức Boolean
1.3 Bài tập kiểm tra.
Bài tập 1. (click here)
12/24/20149 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Cơ chế rẽ nhánh
2.1 Câu lệnh if - else
• Câu lệnh if-else sẽ chọn giữa hai hành động khác nhau dựa
trên giá trị của biểu thức Boolean
• Cú pháp:
if (Biểu_thức_Boolean)
Câu_lệnh_khi _đúng
else
Câu_lệnh_khi _sai
12/24/201410 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Cơ chế rẽ nhánh
2.1 Câu lệnh if - else
• Ví dụ:
if (hours > 40)
grossPay = rate * 40 + 1.5 * rate * (hours – 40);
else
grossPay = rate * hours;
12/24/201411 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Cơ chế rẽ nhánh
2.1 Câu lệnh if - else
• Kết hợp nhiều câu lệnh chúng ta sử dụng cặp ngoặc {} với cú
pháp như sau:
if (Biểu_thức_Boolean)
{
Câu_lệnh_khi _đúng_1;
Câu_lệnh_khi _đúng_2;
}
else
{
Câu_lệnh_khi _sai_1;
Câu_lệnh_khi _sai_2;
}
12/24/201412 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Cơ chế rẽ nhánh
2.1 Câu lệnh if - else
Bài tập 2. (Click Me)
12/24/201413 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Cơ chế rẽ nhánh
2.2 Câu lệnh if không có else
• Cú pháp:
if (Biểu_thức_Boolean_1)
Câu_lệnh_1;
Hoặc:
if (Biểu_thức_Boolean_1)
{
Câu_lệnh_1;
Câu_lệnh_2;
}
12/24/201414 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Cơ chế rẽ nhánh
2.2 Câu lệnh if không có else
• Ví dụ:
if (sales >= minimum)
salary = salary + bonus;
cout << “salary = $” << salary;
12/24/201415 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Cơ chế rẽ nhánh
2.3 Câu lệnh if-else lồng nhau
• Cú pháp:
if (Biểu_thức_Boolean_1)
Câu_lệnh_1
else if (Biểu_thức_Boolean_2)
Câu_lệnh_2
.
.
.
else if (Biểu_thức_Boolean_n)
Câu_lệnh_n
else
Câu _lệnh_cho_các_trường_hợp_còn_lại
12/24/201416 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Cơ chế rẽ nhánh
2.3 Câu lệnh if-else lồng nhau
Ví dụ:
if ((temperature < -10) && (day == SUNDAY))
cout << "Stay home.";
else if (temperature < -10) //và day != SUNDAY
cout << "Stay home, but call work.";
else if (temperature = -10
cout << "Dress warm.";
else //temperature > 0
cout << "Work hard and play hard.";
12/24/201417 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Cơ chế rẽ nhánh
2.3 Câu lệnh if-else lồng nhau
Bài tập 3. (Click Me).
12/24/201418 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Cơ chế rẽ nhánh
2.4 Câu lệnh switch
• Khi một câu lệnh switch được thực thi, một trong số các
nhánh khác nhau sẽ được thực thi. Việc lựa chọn nhánh nào
để thực thi được dựa trên biểu thức điều khiển nằm trong
cặp ngoặc đơn sau từ khóa switch.
• Biểu thức điều khiển cho một câu lệnh switch phải trả về
hoặc là một giá trị bool hoặc một bộ liệt kê các hằng số,
hoặc một giá trị kiểu số nguyên hoặc một kí tự.
12/24/201419 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Cơ chế rẽ nhánh
2.4 Câu lệnh switch
• Cú pháp:
switch (Biểu_thức_điều_khiển)
{
case Hằng_số_1:
Dãy_câu_lệnh_1
break;
case Hằng_số_2:
Dãy_câu_lệnh_2
break;
.
.
.
case Hằng_số_n:
Dãy_câu_lệnh_n
break;
default:
Dãy_câu_lệnh_mặc_định
}
12/24/201420 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Cơ chế rẽ nhánh
2.4 Câu lệnh switch
• Ví dụ:
12/24/201421 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
Click Me
to Demo
2. Cơ chế rẽ nhánh
2.5 Kiểu liệt kê
• Một kiểu liệt kê là một kiểu mà các giá trị của nó được định
nghĩa bằng một danh sách các hằng số kiểu int.
• Ví dụ:
enum Direction { NORTH = 0, SOUTH = 1, EAST = 2, WEST= 3};
Tương đương với:
enum Direction {NORTH, SOUTH, EAST, WEST};
• Nếu bạn không chỉ rõ các giá trị dạng số, mặc định gán cho
các giá trị liên tiếp, bắt đầu bằng 0 và tăng lên 1 cho các giá
trị tiếp theo
12/24/201422 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Cơ chế rẽ nhánh
2.5 Kiểu liệt kê
• Ví dụ:
enum MyEnum { ONE = 17, TWO, THREE, FOUR = -3, FIVE };
Kết quả trong các biến:
ONE = 17, TWO = 18, THREE = 19, FOUR = -3, FIVE = -2
• Đây là một kiểu riêng biệt, sử dụng kiểu liệt kê như là các
nhãn và tránh thực hiện các phép toán số học với các biến
của kiểu liệt kê này.
12/24/201423 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Cơ chế rẽ nhánh
2.6 Toán tử điều kiện
• Chúng ta có thể nhúng một điều kiện vào bên trong một
biểu thức bằng cách sử dụng một toán tử ba ngôi, nó được
biết đến với tên là toán tử điều kiện (còn được gọi là toán
tử ba ngôi hay toán tử số học if).
• Ví dụ:
max = (n1 > n2) ? n1 : n2 ;
Tương đương với:
if (n1 > n2)
max = n1;
else
max = n2;
12/24/201424 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
2. Cơ chế rẽ nhánh
2.6 Toán tử điều kiện
• Bài tập 4: (Click Me)
12/24/201425 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Vòng lặp
3.1 Vòng lặp while và do-while
• Cú pháp vòng lặp while
• Với nhiều câu lệnh ở thân:
12/24/201426 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Vòng lặp
3.1 Vòng lặp while và do-while
• Câu lệnh trong thân vòng lặp sẽ được thực thi khi biểu thức
điều kiện còn đúng.
• Ví dụ: (Click Me)
12/24/201427 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Vòng lặp
3.1 Vòng lặp while và do-while
• Cú pháp vòng lặp do-while
• Với nhiều câu lệnh ở thân
12/24/201428 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Vòng lặp
3.1 Vòng lặp while và do-while
• Đối với vòng lặp do-while sẽ được thực thi trong thân một
lần sau đó mới kiểm tra biểu thức điều kiện. Thân vòng lặp
sẽ được thực thi lặp lại khi biểu thức điều kiện còn đúng.
• Ví dụ: (Click Me)
• Bài tập 5: (Click Me)
12/24/201429 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Vòng lặp
3.2 Toán tử dấu phẩy
• Toán tử dấy phẩy là cách đánh giá một danh sách các biểu
thức và trả lại giá trị của biểu thức cuối cùng.
• Ví dụ:
result = (first = 2, second = first + 1);
Toán tử dấu phẩy được thể hiện bằng dấu phẩy. Biểu thức dấu
phẩy là biểu thức ở bên tay phải toán tử gán. Toán tử dấu
phẩy có hai biểu thức được gọi là các toán hạng. Trong trường
hợp này hai toán hạng là
first = 2 và second = first + 1
12/24/201430 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Vòng lặp
3.2 Toán tử dấu phẩy
• Toán hạng đầu tiên được tính toán và sau đó toán hạng thứ
hai được tính toán. Kết quả là:
result = 3;
• Nếu thứ tự tính toán là quan trọng thì bạn nên sử dụng dấu
ngoặc đơn. Ví dụ:
result=((first = 2, second = first + 1),third = second + 1);
Kết quả: result = 4;
12/24/201431 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Vòng lặp
3.3 Nhắc lại về toán tử tăng, giảm
• Thông thường chúng ta được khuyến cáo không nên dùng
toán tử tăng và toán tử giảm ở trong các biểu thức. Tuy vậy
nhiều lập trình viên thích sử dụng chúng trong biểu thức
Boolean điều khiển của câu lệnh while hoặc câu lệnh do-
while
• Ví dụ: Sử dụng toán tử tăng, tính tổng lượng Calo sử dụng
trong ngày, với số lượng calo của từng bữa ăn được nhập từ
bàn phím. (Click Me)
12/24/201432 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Vòng lặp
3.4 Vòng lặp for
• Câu lệnh for được sử dụng nhiều nhất để duyệt qua các biến
số nguyên có giá trị tăng dần đều.
• Ví dụ: Tính tổng các số nguyên từ 1 đến 10
12/24/201433 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Vòng lặp
3.4 Vòng lặp for
• Cú pháp:
• Biểu thức đầu tiên nói rõ biến, các biến hoặc các phần tử
khác được khởi tạo như thế nào; biểu thức thứ hai là một
biểu thức Boolean được sử dụng để kiểm tra xem khi nào
quá trình lặp nên kết thúc; và biểu thức cuối cùng nói rõ làm
thế nào mà biến điều khiển lặp được cập nhật sau mỗi bước
lặp lại thân vòng lặp.
12/24/201434 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Vòng lặp
3.4 Vòng lặp for
• Ví dụ: bạn có thể khởi tạo biến sum vào trong vòng lặp for
như sau:
• Câu lệnh trên tương đương với:
• Chúng ta cũng có thể khai báo và khởi tạo biến ngay trong
vòng lặp
12/24/201435 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Vòng lặp
3.4 Vòng lặp for
• Bài tập 6: (Click Me)
12/24/201436 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
3. Vòng lặp
3.5 Câu lệnh break và continue
• Break và continue để biến đổi luồng điều khiển trong vòng
lặp for, while, do-while
• break: kết thúc vòng lặp.
• continue: kết thúc vòng lặp hiện tại và tiếp tục vòng lặp
tiếp theo.
• Ví dụ 1: Tính tổng các số âm nhập từ bàn phím (cho phép 4
số), nếu nhập sai thì đưa ra tổng của các số âm trước đó
(dùng break).
(Click Me)
• Ví dụ 2: Tính tổng các số âm nhập từ bàn phím (cho phép 4
số), nếu nhập sai cho phép lại (dùng continue).
(Click Me)
12/24/201437 Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi
EOF!
12/24/2014Nguyễn Xuân Hùng – Khoa CNTT – ĐH Thủy Lợi38
Các file đính kèm theo tài liệu này:
- nnlt_1_luongdieukhien_6592_1993525.pdf