Giới thiệu Các cấu trúc điều khiển thứ tự thực thi các lệnh của chương trình.. Cấu trúc tuần tự sequence: thực hiện các lệnh theo thứ tự từ trên xuốngCấu trúc “Tuần Tự” 3 Lệnh 1Lệnh
Trang 1CÁC CẤU TRÚC ĐIỀU KHIỂN
(Control Structures)
1
CHƯƠNG 3
Trang 21 Giới thiệu
Các cấu trúc điều khiển thứ tự thực thi các lệnh của chương trình
Có 3 loại cấu trúc điều khiển:
Cấu trúc tuần tự (sequence)
Cấu trúc lựa chọn (selection)
Cấu trúc lặp (repetition or loop)
Trang 3 Cấu trúc tuần tự (sequence): thực hiện các lệnh theo thứ tự từ trên xuống
Cấu trúc “Tuần Tự”
3
Lệnh 1Lệnh 2
Lệnh n
…
Trang 4 Cấu trúc lựa chọn (selection): dựa vào kết
quả của biểu thức điều kiện mà những lệnh
tương ứng sẽ được thực hiện Các cấu trúc
lựa chọn gồm:
− if
− switch
Cấu trúc “Lựa chọn”
Trang 5 Cấu trúc lặp (repetition or loop): lặp lại 1
hay nhiều lệnh cho đến khi biểu thức điều
kiện có giá trị sai Các cấu trúc lặp gồm:
− for
− while
− do while
Tuy nhiên, thứ tự thực hiện các lệnh của
chương trình còn bị chi phối bởi các lệnh
nhảy như
nhảy như continue, break, gotocontinue, break, goto
Cấu trúc “Lặp”
5
Trang 63 CẤU TRÚC “ IF “
Trang 73.1 Cấu trúc IF “Dạng thiếu”
Cú pháp:
if (expression) statement ;
Ý nghĩa:
Expression Expression được định trị Nếu
kết quả là
kết quả là true true thì statement thì statement được thực thi,
ngược lại, không làm gì cả.
Lưu đồ
7
Trang 9− Nếu Nếu Expression được định là được định là true true thì
statement1 được thực thi
− Ngược lại, thì statement2Ngược lại, thì statement2 được thực thi
Lưu đồ
3.2 Cấu trúc IF “Dạng đủ”
9
Trang 10Viết chương trình nhập vào một số nguyên a In ra màn hình kết quả
kiểm tra a là số âm hay dương
Trang 11 Ta có thể sử dụng các câu lệnh if…elseTa có thể sử dụng các câu lệnh if…else lồng
nhau Khi dùng
nhau Khi dùng if…elseif…else lồng nhau thì else lồng nhau thì else
sẽ kết hợp với
sẽ kết hợp với if if gần nhất
Ví dụ: Cho biết tháng m (m được nhập từ bàn phím) có
bao nhiêu ngày?
#include <iostream.h>
#include <conio.h>
Lưu ý
11
Trang 134 CẤU TRÚC “ sw itch“
Trang 14Cấu trúc switch là gì?
Cấu trúc switch là một cấu trúc lựa chọn có nhiều nhánh, được sử dụng khi có nhiều lựa chọn.
Trang 15Lưu đồ cấu trúc switch
15
Trang 161. Expression sẽ được định trị
2. Nếu giá trị của expressionNếu giá trị của expression bằng value_1 bằng value_1 thì
thực hiện
thực hiện statement_1 statement_1 và thoát và thoát
3. Nếu giá trị của expressionNếu giá trị của expression khác value _1 khác value _1 thì
tới value_nvalue_n
4. Nếu tất cả các phép so sánh đều sai thì thực
hiện
hiện statement statement của defaultcủa default
Hoạt động của cấu trúc “switch”
Trang 17 Expression trong switch() phải có kết quả
là giá trị kiểu số nguyên (int, char, long)
Các giá trị sau case phải là hằng nguyên
Không bắt buộc phải có default
Khi thực hiện lệnh tương ứng của case có giá trị bằng expression, chương trình thực hiện lệnh break để thoát khỏi cấu trúc
switch
Lưu ý:
17
Trang 18Ví dụ: Nhập vào một số nguyên, chia số nguyên này cho 2 lấy phần dư Kiểm tra nếu phần dư bằng 0 thì
in ra thông báo “là số chẳn”, nếu số dư bằng 1 thì in thông báo “là số lẽ”
#include <iostream.h>
#include <conio.h>
Ví dụ
Trang 19case 0 : cout << n << ” la so chan.";
break ;
case 1 : cout << n << ” la so le.";
break ; }
getche (); return 0 ; }
Trang 205 CẤU TRÚC LẶP
Trang 212 Nếu kết quả là true thì
statement thực thi và quay
Trang 22Viết chương trình tính tổng các số nguyên từ 1 tới n
Trang 23 Cú pháp:
do {
statement ; } while (expression) ;
Ý nghĩa:
1 Statement được thực hiện
2 Expression được định trị
3 Nếu Expression là true thì
quay lại bước 1
4 Nếu Expression là false thì
thoát khỏi vòng lặp
5.2 Cấu trúc do…while
23
Trang 24Viết chương trình in dãy số nguyên từ 1 đến 10
#include <iostream.h>
#include <conio.h>
Ví dụ
Trang 25} while (i<= 10 );
getche ();
return 0 ; }
Trang 265 CẤU TRÚC LẶP
Trang 28Viết chương trình tính tổng các số nguyên từ 1 đến n
#include <iostream.h>
#include <conio.h>
Ví dụ
Trang 30 C/C++ cho phép Exp1 là một định nghĩa biến
for(int i=1; i<=n; ++i)
Xóa tất cả các biểu thức trong vòng lặp for sẽ cho một vòng lặp vô tận
for (;;)
statement;
Lưu ý
Trang 31Phân biệt dùng “for” hay while”,”do…while”
Trang 326 Lệnh ngắt “
Trang 33 Khi gặp lệnh break thì lặp tức thóat khỏi một cấu trúc điều khiển mà không chờ đến biểu thức điều kiện được định trị.
Điều khiển (control flow) tự động nhảy đến lệnh tiếp theo
Trong vòng lặp câu lệnh break thường đi kèm với câu lệnh if
33
Ý nghĩa việc dùng lệnh “break”
Trang 34Đọc vào một mật khẩu người dùng tối đa SoLanNhap
cout << "Dang nhap thanh cong!\n";
Trang 356 Lệnh “continue”
Trang 36 Lệnh continue dùng để kết thúc sớm vòng
lặp hiện tại và quay về đầu vòng lặp
Lệnh continue chỉ được dùng trong thân các
cấu trúc lặp như for, while, do while
Câu lệnh continue thường đi kèm với câu
lệnh if
Ý nghĩa việc dùng lệnh “continue”
Trang 37Một vòng lặp thực hiện nhập vào từ bàn phím một số dương, nếu nhập âm thì bắt buộc người dùng nhập lại.
Trang 38Tóm tắt các cấu trúc điều khiển
1. Các cấu trúc điều khiển qui định thứ tự thực
thi các lệnh của chương trình
2. Có 3 loại cấu trúc điều khiển:
i. Cấu trúc tuần tự (sequence)
ii. Cấu trúc lựa chọn (selection): if, switch (selection): if, switch
iii. Cấu trúc lặp (repetition or loop): for, repetition or loop): for,
while, do…while
Trang 39Việc dùng lệnh break, continue ?
39
Lệnh break: dùng để thoát khỏi một cấu trúc lệnh hiện tại và thực hiện lệnh tiếp theo
Lệnh continue: khi gặp lệnh continue sẽ quay
về đầu vòng lặp và thực hiện lần lặp tiếp theo
Trong cấu trúc lặp (for, while, do…while) thì lệnh break, continue thường nằm trong cấu trúc lệnh if
Trang 40HẾT.