Tin học cơ sở 4
Buổi 4. Luồng điều khiển
Lệnh lặp
Bộ mơn Khoa học máy tính - 2017
Nội dung buổi học
1. Luồng điều khiển lặp
2. Lệnh lặp
while
do-while
for
2
Luồng điều khiển
Thứ tự chạy các lệnh trong chương
trình
Tuần tự
Lệnh 1
Lệnh 2
Lệnh 3
Lệnh 4
Rẽ nhánh
No
Điều kiện
Yes
Lệnh nhánh YES
Lệnh tiếp theo
3
Luồng điều khiển lặp
Rẽ nhánh
No
Điều kiện
Yes
Lệnh nhánh YES
Lệnh tiếp theo
4
Luồng điều khiển lặp
Lặp
No
Điều kiện
Thốt khỏi vịng lặp
Yes
Nhánh lệnh cần lặp
5
Luồng điều khiển lặp
Đếm từ
1 đến 10
int n = 1;
No
n <= 10
Thốt khỏi vịng lặp
Yes
cout << n << endl;
n++;
6
Luồng điều khiển lặp
int n = 10;
Đếm ngược
khi phóng tên lửa
No
n >= 0
Thốt khỏi vịng lặp
Yes
if (n > 0) cout << n << endl;
else cout << "Lift off !!!" << endl;
n--;
7
Luồng điều khiển lặp
int n = 1, sum = 0;
Tính tổng các
số từ 1 đến 100
No
n <= 100
Thốt khỏi vịng lặp
Yes
sum += n;
n++;
8
Luồng điều khiển lặp
int n = 1, sum = 0;
Tính tổng các
số chia ba dư 1
từ 1 đến 100
No
n <= 100
Thốt khỏi vịng lặp
Yes
if (n % 3 == 1) sum += n;
n++;
9
Lệnh while
Cú pháp
while ( điều kiện lặp ) {
Dãy lệnh lặp khi điều kiện lặp đúng
}
Kiểm tra điều kiện trước khi lặp
10
Nếu10
khơng
CT1. Đếm từ 1 đến
có lệnh
n++ này ?
int n = 1;
while (n <= 10) {
cout << n << endl;
n++;
}
Thay đổi biến n, để điều
kiện có thể bị vi phạm
Cần 2 dấu đóng mở ngoặc
bao lấy điều kiện lặp
11
CT2. Đếm ngược phóng tên lửa
int n = 10;
Lồng các cấu trúc điều
while (n >= 0) {
khiển khác trong vòng lặp
if (n > 0) {
cout << n << endl;
} else {
cout << "Lift off !!!" << endl;
}
Giảm biến đếm n để điều
n--;
kiện lặp có thể bị vi phạm
}
12
CT3. Tính tổng tích lũy
int n = 1, sum = 0;
while (n <= 100) {
Cộng số n hiện tại vào
sum += n;
biến sum để tích lũy tổng
n++;
}
cout << "1+2+...+100 = " << sum << endl;
13
CT4. Tính tổng tích lũy có lựa chọn
int n = 1, sum = 0;
while (n <= 100) {
if (n % 3 == 1) {
sum += n;
Lựa chọn số n để tích lũy
}
vào tổng sum
n++;
}
cout << "1+4+7+...+100 = " << sum << endl;
14
Lệnh do - while
Cú pháp
do {
Dãy lệnh lặp khi điều kiện lặp đúng
Lần đầu tiên không kiểm tra điều kiện
} while ( điều kiện lặp );
Kiểm tra điều kiện sau khi lặp lần đầu tiên
Luôn luôn lặp ít nhất 1 lần
15
Luồng điều khiển do-while
Nhánh lệnh cần lặp
No
Điều kiện
Thốt khỏi vịng lặp
Yes
16
CT5. Nhắc lại đến khi gặp “good bye”
string line = "good bye"; Đọc 1 dòng ký tự bằng
do {
lệnh getline
cout << "Write something: ";
getline(cin, line);
cout << "You entered: " << line << endl;
} while ( line != "good bye" );
Kiểm tra dịng nhập vào
có phải là “good bye”
17
CT6. Menu lựa chọn tính năng
string choice;
do {
cout << "Enter your choice: ";
getline(cin, choice);
Gọi hàm tương ứng
if (choice == "sum") {
lựa chọn
menuSum();
} else if (choice == "good bye") {
menuGoodbye();
} else {
cout << "Unrecognized choice\n";
}
} while (choice != "quit");
với
18
Lệnh for
Cú pháp
for ( lệnh khởi tạo; điều kiện lặp; lệnh thay
đổi biến chạy ) do {
Dãy lệnh lặp khi điều kiện lặp đúng
}
Kiểm tra điều kiện trước khi lặp lần
đầu tiên (giống lệnh while)
19
CT7: Tổng từ 1 đến 10
Khởi tạo
int sum = 0;
for (int n = 1; n <= 10; n++) {
sum += n;
Điều kiện lặp
Thay đổi biến chạy
}
cout << sum << endl;
cout << n << endl;
Lỗi: phạm vi biến n
nằm trong vòng lặp
20