CÁC CẤU TRÚC ĐIỀU KHIỂN
GIỚI THIỆU
Cấu trúc lựa chọn
Câu lệnh if
Câu lệnh if – else
Câu lệnh với nhiều lệnh if
Câu lệnh if lồng nhau
Câu lệnh switch.
Vòng lặp
Vòng lặp „for‟ trong C
Toán tử „phẩy‟
Vòng lặp lồng nhau
Vòng lặp „while‟ và vòng lặp „do-while‟
Lệnh nhẩy
Các lệnh „break‟, „continue‟ và „goto‟
Hàm „exit()
126 trang |
Chia sẻ: phuongt97 | Lượt xem: 503 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Nhập môn tin học - Bài 3: Các cấu trúc điều khiển - Đào Nam Anh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
for (j=1; j<=5; j++)
printf("%d ", j);
printf("\n");
}
}
93
Qúa trình thực hiện vòng lặp ở đây như sau:
1. Khởi tạo giá trị cho biến điều khiển vòng lặp ngoài
cùng: i = 1.
2. Kiểm tra biểu thức điều kiện vòng lặp ngoài cùng
(i <= 10)? Do giá trị hiện tại của i = 1 nên biểu thức
điều kiện này nhận giá trị đúng và khối lệnh trong
thân vòng lặp được thực hiện.
3. Thân của vòng lặp này chứa một vòng lặp nữa (biến
j) và lệnh xuống dòng printf("%d\n", i). Thực hiện
vòng lặp bên trong hoàn toàn tương tự như vòng lặp
bên ngoài. Vòng lặp này sẽ thực hiện 5 lần với giá trị
của j thay đổi từ 1 đến 5. Khi j tăng lên 6, mỗi lần
thực hiện sẽ in ra màn hình giá trị tương ứng của j.
Do giá trị này lớn hơn 5 nên vòng lặp trong kết thúc.
Lệnh xuống dòng được thực hiện . Sau đó, thực hiện
vòng lặp bên ngoài.
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Vòng lặp for.Ví dụ
Chương trình sau đây sẽ in ra 10 hàng,
mỗi hàng gồm 5 chữ số từ 1 đến 5:
int main()
{
int i, j;
for (i = 1; i<=10; i++){
for (j=1; j<=5; j++)
printf("%d ", j);
printf("\n");
}
}
94
Qúa trình thực hiện vòng lặp ở đây như sau:
1. Khởi tạo giá trị cho biến điều khiển vòng lặp ngoài
cùng: i = 1.
2. Kiểm tra biểu thức điều kiện vòng lặp ngoài cùng
(i <= 10)? Do giá trị hiện tại của i = 1 nên biểu thức
điều kiện này nhận giá trị đúng và khối lệnh trong
thân vòng lặp được thực hiện.
3. Thân của vòng lặp này chứa một vòng lặp nữa (biến
j) và lệnh xuống dòng printf("%d\n", i). Thực hiện
vòng lặp bên trong hoàn toàn tương tự như vòng lặp
bên ngoài. Vòng lặp này sẽ thực hiện 5 lần với giá trị
của j thay đổi từ 1 đến 5. Khi j tăng lên 6, mỗi lần
thực hiện sẽ in ra màn hình giá trị tương ứng của j.
Do giá trị này lớn hơn 5 nên vòng lặp trong kết thúc.
Lệnh xuống dòng được thực hiện . Sau đó, thực hiện
vòng lặp bên ngoài.
4. Biểu thức thay đổi giá trị của biến điều khiển i++,
tăng giá trị của biến i lên 1 cho lần lặp kế tiếp.
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Vòng lặp for.Ví dụ
Chương trình sau đây sẽ in ra 10 hàng,
mỗi hàng gồm 5 chữ số từ 1 đến 5:
int main()
{
int i, j;
for (i = 1; i<=10; i++){
for (j=1; j<=5; j++)
printf("%d ", j);
printf("\n");
}
}
95
Qúa trình thực hiện vòng lặp ở đây như sau:
1. Khởi tạo giá trị cho biến điều khiển vòng lặp ngoài
cùng: i = 1.
2. Kiểm tra biểu thức điều kiện vòng lặp ngoài cùng
(i <= 10)? Do giá trị hiện tại của i = 1 nên biểu thức
điều kiện này nhận giá trị đúng và khối lệnh trong
thân vòng lặp được thực hiện.
3. Thân của vòng lặp này chứa một vòng lặp nữa (biến
j) và lệnh xuống dòng printf("%d\n", i). Thực hiện
vòng lặp bên trong hoàn toàn tương tự như vòng lặp
bên ngoài. Vòng lặp này sẽ thực hiện 5 lần với giá trị
của j thay đổi từ 1 đến 5. Khi j tăng lên 6, mỗi lần
thực hiện sẽ in ra màn hình giá trị tương ứng của j.
Do giá trị này lớn hơn 5 nên vòng lặp trong kết thúc.
Lệnh xuống dòng được thực hiện . Sau đó, thực hiện
vòng lặp bên ngoài.
4. Biểu thức thay đổi giá trị của biến điều khiển i++,
tăng giá trị của biến i lên 1 cho lần lặp kế tiếp.
5. Lặp lại các bước 2, 3, 4 cho đến khi biểu thức điều
kiện là sai.
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Các trường hợp khác của vòng lặp for:
Vòng lặp for có thể được sử dụng mà không cần phải có đầy
đủ các thành phần của nó. Ví dụ:
. . .
for (i = 1; i!= 10;)
{ printf(“Input i = “);
scanf(“%d”,&i);
. . .
}
Đoạn mã trên sẽ yêu cầu nhập giá trị cho biến i, vòng lặp
không có phần thay đổi giá trị của biến điều khiển và sẽ kết
thúc khi biến i có giá trị 10.
96
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Các trường hợp khác của vòng lặp for:
Một dạng khác, vòng lặp for có thể thiếu phần khởi tạo giá trị
cho biến điều khiển vòng lặp như sau:
printf("Input i = ");
scanf("%d", &i);
for(; i < 10; )
{
printf("%d ", i);
i++;
}
Vòng lặp trên không có phần khởi tạo tham số và phần thay đổi giá trị của
tham số i. Tuy nhiên, giá trị của i đã được thay đổi trong thân vòng lặp để
tránh trường hợp lặp vô
n.
97
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Các trường hợp khác của vòng lặp for:
Vòng lặp for khi không có bất kỳ thành phần nào sẽ là
một vòng lặp vô
n.
for ( ; ; )
{
. . .
}
Tuy nhiên, lệnh break bên trong vòng lặp sẽ cho phép
thoát khỏi vòng lặp.
for ( ; ; )
{
ch = getchar();
if (ch == „E‟ || i == „e‟);
break;
}
Vòng lặp trên sẽ được thực hiện cho đến khi người dùng
nhập vào E hoặc e.
98
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Các trường hợp khác của vòng lặp for:
Vòng lặp for (hay vòng lặp bất k
) có thể không có bất k lệnh nào trong
phần thân của nó. K
thuật này giúp tăng tính hiệu quả trong một vài giải
thuật và để tạo ra độ trễ về mặt thời gian. Chẳng hạn có thể tạo ra một độ
trễ trong khoảng thời gian MAX_TIME như sau:
for (i = 0; i < MAX_TIME; i++);
99
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Vòng lặp while
Cú pháp tổng quát như sau:
while (điều_kiện là đúng)
câu_lệnh;
100 CNTT Nhập môn tin học
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Vòng lặp while
Cú pháp tổng quát như sau:
while (điều_kiện là đúng)
câu_lệnh;
Trong đó, câu_lệnh có thể là rỗng, hay một lệnh đơn, hay một
khối lệnh.
Nếu vòng lặp while chứa một tập các lệnh thì chúng phải được
đặt trong cặp ngoặc
n { }. điều_kiện có thể là biểu thức bất
kỳ.
Vòng lặp sẽ được thực hiện lặp đi lặp lại khi điều kiện trên là
đúng (true). Chương trình sẽ chuyển đến thực hiện lệnh tiếp
sau vòng lặp khi điều kiện trên là sai (false).
101
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Vòng lặp while.Ví dụ
Chương trình ví dụ sau đây cho phép
người dùng nhập liên tục các số nguyên
bất kỳ từ bàn phím. Việc nhập sẽ kết thúc
khi người dùng nhập vào số 0.
void main()
{
int x;
printf("Input a number: ");
scanf("%d", &x);
while (x!=0){
printf("%d\n",x);
printf("Input a next number: ");
scanf("%d", &x);
}
getch();
}
102
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Vòng lặp while.Ví dụ
Chương trình ví dụ sau đây cho phép
người dùng nhập liên tục các số nguyên
bất kỳ từ bàn phím. Việc nhập sẽ kết thúc
khi người dùng nhập vào số 0.
void main()
{
int x;
printf("Input a number: ");
scanf("%d", &x);
while (x!=0){
printf("%d\n",x);
printf("Input a next number: ");
scanf("%d", &x);
}
getch();
}
103
1. Đầu tiên chương trình yêu cầu người dùng
nhập vào một số.
2. Nếu người dùng nhập vào số 0 thì biểu thức
điều kiện (x!=0) nhận giá trị sai, vòng lặp
while sẽ kết thúc và không thực hiện lần nào.
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Vòng lặp while.Ví dụ
Chương trình ví dụ sau đây cho phép
người dùng nhập liên tục các số nguyên
bất kỳ từ bàn phím. Việc nhập sẽ kết thúc
khi người dùng nhập vào số 0.
void main()
{
int x;
printf("Input a number: ");
scanf("%d", &x);
while (x!=0){
printf("%d\n",x);
printf("Input a next number: ");
scanf("%d", &x);
}
getch();
}
104
1. Đầu tiên chương trình yêu cầu người dùng
nhập vào một số.
2. Nếu người dùng nhập vào số 0 thì biểu thức
điều kiện (x!=0) nhận giá trị sai, vòng lặp
while sẽ kết thúc và không thực hiện lần nào.
3. Ngược lại, nếu người dùng nhập vào số khác
0 thì biểu thức điều kiện nhận giá trị đúng và
khối lệnh trong thân vòng lặp được thực hiện.
4. Trước tiên printf("%d\n",x)sẽ in giá trị của số
đã nhập ra màn hình sau đó yêu cầu người
dùng nhập vào số tiếp theo.
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Vòng lặp while.Ví dụ
Chương trình ví dụ sau đây cho phép
người dùng nhập liên tục các số nguyên
bất kỳ từ bàn phím. Việc nhập sẽ kết thúc
khi người dùng nhập vào số 0.
void main()
{
int x;
printf("Input a number: ");
scanf("%d", &x);
while (x!=0){
printf("%d\n",x);
printf("Input a next number: ");
scanf("%d", &x);
}
getch();
}
105
1. Đầu tiên chương trình yêu cầu người dùng
nhập vào một số.
2. Nếu người dùng nhập vào số 0 thì biểu thức
điều kiện (x!=0) nhận giá trị sai, vòng lặp
while sẽ kết thúc và không thực hiện lần nào.
3. Ngược lại, nếu người dùng nhập vào số khác
0 thì biểu thức điều kiện nhận giá trị đúng và
khối lệnh trong thân vòng lặp được thực hiện.
4. Trước tiên printf("%d\n",x)sẽ in giá trị của số
đã nhập ra màn hình sau đó yêu cầu người
dùng nhập vào số tiếp theo.
5. Sau khi người dùng nhập xong, sẽ quay lại
kiểm tra biểu thức điều kiện, nếu đúng vòng
lặp tiếp tục được thực hiện, nếu sai vòng lặp
kết thúc và lệnh getch()sau vòng lặp sẽ được
thực hiện.
6. Lặp lại các bước 2, 3, 4 cho đến khi biểu thức
điều kiện là sai.
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Vòng lặp while.Ví dụ
Chương trình ví dụ sau đây cho phép
người dùng nhập liên tục các số nguyên
bất kỳ từ bàn phím. Việc nhập sẽ kết thúc
khi người dùng nhập vào số 0.
void main()
{
int x;
printf("Input a number: ");
scanf("%d", &x);
while (x!=0){
printf("%d\n",x);
printf("Input a next number: ");
scanf("%d", &x);
}
getch();
}
106
Giống như vòng lặp for, vòng lặp
while kiểm tra điều kiện ngay khi
bắt đầu thực hiện vòng lặp. Do đó
các lệnh trong thân vòng lặp sẽ
không được thực hiện nếu ngay từ
ban đầu điều kiện đó là sai.
Biểu thức điều kiện trong vòng
lặp có thể phức tạp tùy theo yêu
cầu của bài toán.
Các biến trong biểu thức điều kiện
có thể bị thay đổi giá trị trong
thân vòng lặp, nhưng cuối cùng
điều kiện đó phải sai (false) nếu
không vòng lặp sẽ không bao giờ
kết thúc.
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Vòng lặp while.Ví dụ
Sau đây là ví dụ về một vòng lặp while
vô hạn.
void main()
{
int i = 1;
while (i < 10){
printf("\n This is iteration %d\n", i);
}
getch();
}
107
Giá trị i luôn luôn có giá trị bằng
1 và vì vậy biểu thức điều kiện
luôn trả về giá trị đúng. Do vậy
vòng lặp không bao giờ kết thúc.
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Vòng lặp while.Ví dụ
Sau đây là ví dụ về một vòng lặp while
vô hạn.
void main()
{
int i = 1;
while (i < 10){
printf("\n This is iteration %d\n", i);
}
getch();
}
108
Giá trị i luôn luôn có giá trị bằng
1 và vì vậy biểu thức điều kiện
luôn trả về giá trị đúng. Do vậy
vòng lặp không bao giờ kết thúc.
Có thể khắc phục điều này một cách đơn
giản bằng cách bổ sung thêm biểu thức
thay đổi giá trị của biến điểu khiển vòng
lặp như sau:
void main()
{
int i = 1;
while (i < 10){
printf("\n This is iteration %d\n", i);
i++;
}
getch();
}
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Vòng lặp while.Ví dụ
Nếu có hơn một điều kiện được kiểm tra
để kết thúc vòng lặp, vòng lặp sẽ kết thúc
khi có ít nhất một điều kiện trong các
điều kiện đó là false. Ví dụ sau sẽ minh
họa điều này.
#include
main()
{ int i, j;
i = 0;
j = 10;
while (i 5)
{ ...
i++;
j -= 2;
}
...
}
109
Vòng lặp này sẽ thực hiện 3 lần,
lần lặp thứ nhất j sẽ là 10, lần
lặp kế tiếp j bằng 8 và lần lặp
thứ ba j sẽ bằng 6.
Khi đó i vẫn nhỏ hơn 100 ( i
bằng 3), j nhận giá trị 4 và điều
kiện j > 5 trở thành false, vì vậy
vòng lặp kết thúc.
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Vòng lặp do...while
Vòng lặp do ... while
còn được gọi là vòng lặp
do trong C.
Không giống như vòng lặp
for và while, vòng lặp này
kiểm tra điều kiện tại cuối
vòng lặp.
Điều này có nghĩa là vòng
lặp do ... while sẽ được thực
hiện ít nhất một lần, ngay cả
khi điều kiện là sai (false) ở
lần chạy đầu tiên.
110
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Vòng lặp do...while
do{
câu_lệnh;
} while (điều_kiện);
• Cặp dấu ngoặc
n {} là không cần thiết khi chỉ có một câu
lệnh hiện diện trong vòng lặp, nhưng việc sử dụng
p dấu
ngoặc
n {} là một thói quen tốt.
• Vòng lặp do ... while lặp đến khi điều_kiện mang giá trị false.
Trong vòng lặp do ... while, câu_lệnh (khối các câu lệnh) sẽ
được thực thi trước, và sau đó điều_kiện được kiểm tra.
• Nếu điều kiện là true, chương trình sẽ quay lại thực hiện lệnh
do. Nếu điều kiện là false, chương trình chuyển đến thực hiện
lệnh nằm sau vòng lặp.
111
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Vòng lặp do..while.Ví dụ
#include
#include
main()
{
int val;
do
{
printf("Please enter a number between 1
and 10: ");
scanf("%d",&val);
if(val10)
printf("The number is not between 1 and
10.\n");
}while(val10);
printf("You entered a %d.",val);
getch();
return 0;
}
112
Đoạn chương trình trên yêu cầu
người dùng nhập số bất kỳ từ bàn
phím, nếu số đó nằm ngoài
khoảng 1..10 (có nghĩa là nhỏ
hơn 1 hoặc lớn hơn 10) thì yêu
cầu nhập lại.
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Vòng lặp do..while.Ví dụ
#include
#include
main()
{
int val;
do
{
printf("Please enter a number between 1
and 10: ");
scanf("%d",&val);
if(val10)
printf("The number is not between 1 and
10.\n");
}while(val10);
printf("You entered a %d.",val);
getch();
return 0;
}
113
Đoạn chương trình trên yêu cầu
người dùng nhập số bất kỳ từ bàn
phím, nếu số đó nằm ngoài
khoảng 1..10 (có nghĩa là nhỏ
hơn 1 hoặc lớn hơn 10) thì yêu
cầu nhập lại.
Kết quả thực hiện của chương
trình này như sau:
Please enter a number between 1 and 10: 11
The number is not between 1 and 10.
Please enter a number between 1 and 10: 12
The number is not between 1 and 10.
Please enter a number between 1 and 10: 0
The number is not between 1 and 10.
Please enter a number between 1 and 10: 2
You entered a 2.
u
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Các vòng lặp „while lồng nhau‟ và „do
... while‟
int main(){
char x, c;
printf("Enter a character: "); scanf("%c", &c);
printf("Character entered: %c\n", c);
fflush(stdin);
printf("Enter more characters (Y/N)?");
scanf("%c", &x);
fflush(stdin);
while (x == 'Y' || x == 'y'){
do{
printf("Enter a character: ");
scanf("%c", &c);
fflush(stdin);
printf("Character entered: %c\n", c);
}while (c != 'E' && c != 'e');
printf("Enter more characters (Y/N)?");
scanf("%c", &x);
fflush(stdin);
}
}
114
Chương trình trên yêu cầu người
dùng nhập vào một k
tự bất kỳ.
Sau khi nhập, chương trình sẽ hỏi
người dùng có muốn nhập tiếp k
tự khác hay không (Y/N)?
Nếu trả lời „n‟ hoặc „N‟, chương
trình kết thúc.
Nếu trả lời „y‟ hoặc „Y‟ , sẽ cho
phép người dùng nhập liên tục
các k
tự cho đến khi người dùng
nhập vào kí tự „e‟ hoặc „E‟.
Lúc này, chương trình sẽ hỏi lại
người dùng có muốn nhập k
tự
không và lặp lại các bước thực
hiện như trên.
u
CÁC CẤU TRÚC ĐIỀU KHIỂN
2.
NG P
Các vòng lặp „while lồng nhau‟ và „do
... while‟
int main(){
char x, c;
printf("Enter a character: "); scanf("%c", &c);
printf("Character entered: %c\n", c);
fflush(stdin);
printf("Enter more characters (Y/N)?");
scanf("%c", &x);
fflush(stdin);
while (x == 'Y' || x == 'y'){
do{
printf("Enter a character: ");
scanf("%c", &c);
fflush(stdin);
printf("Character entered: %c\n", c);
}while (c != 'E' && c != 'e');
printf("Enter more characters (Y/N)?");
scanf("%c", &x);
fflush(stdin);
}
}
115
Kết quả thực hiện của đoạn
chương trình trên như sau:
Enter a character: b
Character entered: b
Enter more characters (Y/N)? y
Enter a character:c
Character entered:c
Enter a character:e
Character entered:c
Enter more characters (Y/N)? n
u
CÁC CẤU TRÚC ĐIỀU KHIỂN
3.
C NH Y
C có bốn câu lệnh thực hiện sự rẽ nhánh không điều kiện:
return, goto, break, và continue.
Sự rẽ nhánh không điều kiện nghĩa là sự chuyển điều khiển từ
một điểm đến một lệnh xác định.
Trong các lệnh chuyển điều khiển trên, return và goto có thể
dùng bất kỳ vị trí nào trong chương trình, trong khi lệnh break
và continue được sử dụng kết hợp với các câu lệnh vòng lặp.
116 CNTT Nhập môn tin học
Lệnh break
Câu lệnh break có hai cách dùng.
Nó có thể được sử dụng để kết thúc một case trong câu lệnh
switch hoặc để kết thúc ngay một vòng lặp, mà không cần
kiểm tra điều kiện vòng lặp.
Khi chương trình gặp lệnh break trong một vòng lặp, ngay lập
tức vòng lặp được kết thúc và quyền điều khiển chương trình
được chuyển đến câu lệnh theo sau vòng lặp.
117 CNTT Nhập môn tin học
CÁC CẤU TRÚC ĐIỀU KHIỂN
3.
C NH Y
Ví dụ 3.16:
#include
main()
{
int n,i ;
printf("Input n = ");
scanf("%d",&n);
printf("So vua nhap la: %d\n",n);
for (i=n;i>=1;i--)
{
if (i==5)
break;
printf("%d ",i) ;
}
}
118
Đoạn chương trình trên yêu cầu
người dùng nhập một số nguyên bất
kỳ từ bàn phím (n). Sau đó sẽ in ra
dãy số theo thứ tự ngược từ n tới 1.
Về nguyên tắc,
ng lặp trên sẽ
thực hiện n lần. Tuy nhiên, do có
câu lệnh:
if (i==5) break;
nên vòng lặp này sẽ bị kết thúc
giữa chừng sau lần lặp thứ 5 (i = 5).
u
CÁC CẤU TRÚC ĐIỀU KHIỂN
3.
C NH Y
Ví dụ 3.16:
#include
main()
{
int n,i ;
printf("Input n = ");
scanf("%d",&n);
printf("So vua nhap la: %d\n",n);
for (i=n;i>=1;i--)
{
if (i==5)
break;
printf("%d ",i) ;
}
}
119
Kết quả thực hiện của chương
trình như sau:
Input n = 10
So vua nhap la: 10
10 9 8 7 6
u
CÁC CẤU TRÚC ĐIỀU KHIỂN
3.
C NH Y
Lệnh break
Một điểm khác cần lưu ý là việc sử dụng câu lênh break trong
các lệnh lặp lồng nhau. Khi chương trình thực thi đến một lệnh
break nằm trong một vòng lặp for lồng bên trong một vòng
lặp for khác, quyền điều khiển được chuyển trở về vòng lặp
for bên ngoài.
120 CNTT Nhập môn tin học
CÁC CẤU TRÚC ĐIỀU KHIỂN
3.
C NH Y
Lệnh continue
Lệnh continue kết thúc lần lặp hiện hành và bắt đầu lần lặp kế
tiếp. Khi gặp lệnh này trong chương trình, các câu lệnh còn lại
trong thân của vòng lặp được bỏ qua và quyền điều khiển được
chuyển đến bước đầu của vòng lặp trong lần lặp kế tiếp.
Trong trường hợp vòng lặp for, continue thực hiện biểu thức
thay đổi giá trị của biến điều khiển và sau đó kiểm tra biểu
thức điều kiện.
Trong trường hợp của lệnh while và dowhile, quyền điều
khiển chương trình được chuyển đến biểu thức kiểm tra điều
kiện.
121 CNTT Nhập môn tin học
CÁC CẤU TRÚC ĐIỀU KHIỂN
3.
C NH Y
Ví dụ 3.17:
#include
#include
#include
main()
{
int n,i ;
printf("Input n = ");
scanf("%d",&n);
printf("So vua nhap la:%d\n",n);
for (i=1;i<=n;i++)
{
if (i%2!=0) continue;
printf("%d ",i) ;
}
getch();
}
122
Chương trình trên yêu cầu người
dùng nhập vào một số nguyên bất
kỳ (n) và in ra mà hình tất cả
những số chẵn trong khoảng từ 1
đến n.
Tại mỗi bước lặp, nếu điều kiện
(i%2!=0) thỏa mãn lệnh continue
sẽ được thực hiện. Như vậy, câu
lệnh printf("%d ",i)- in giá trị của i
ra màn hình sẽ bị bỏ qua và vòng
lặp kế tiếp được bắt đầu
u
CÁC CẤU TRÚC ĐIỀU KHIỂN
3.
C NH Y
Ví dụ 3.17:
#include
#include
#include
main()
{
int n,i ;
printf("Input n = ");
scanf("%d",&n);
printf("So vua nhap la:%d\n",n);
for (i=1;i<=n;i++)
{
if (i%2!=0) continue;
printf("%d ",i) ;
}
getch();
}
123
Kết quả thực hiện của chương
trình trên như sau:
Input n = 100
So vua nhap la: 100
2 4 6 8 10 12 14 16 18 20 22 24 26
28 30 32 34 36 38 40 42 44 46 48
50 52 54 56 58 60 62 64 66 68 70
72 74 76 78 80 82 84 86 88 90 92
94 96 98 100
u
CÁC CẤU TRÚC ĐIỀU KHIỂN
3.
C NH Y
Lệnh return
Lệnh return dùng để quay lại vị trí gọi hàm sau khi các lệnh
trong hàm đó được thực thi xong. Trong lệnh return có thể có
một giá trị gắn với nó, giá trị đó sẽ được trả về cho chương trình.
return biểu_thức;
Biểu_thức là một tùy chọn (không bắt buộc). Có thể có hơn một
lệnh return được sử dụng trong một hàm. Tuy nhiên, hàm sẽ
quay trở về vị trí gọi hàm khi gặp lệnh return đầu tiên.
:
int f(n)
{
Các công việc....
return giá trị trả về;
}
124
CÁC CẤU TRÚC ĐIỀU KHIỂN
3.
C NH Y
CÁC CẤU TRÚC ĐIỀU KHIỂN
TÓM TẮT
Cấu trúc lựa chọn
Câu lệnh if
Câu lệnh if – else
Câu lệnh với nhiều lệnh if
Câu lệnh if lồng nhau
Câu lệnh switch.
Vòng lặp
Vòng lặp „for‟ trong C
Toán tử „phẩy‟
Vòng lặp lồng nhau
Vòng lặp „while‟ và vòng lặp „do-while‟
Lệnh nhẩy
Các lệnh „break‟, „continue‟ và „goto‟
Hàm „exit()‟.
125
Cám ơn
https://sites.google.com/site/daonamanhedu/intro2informatics
Các file đính kèm theo tài liệu này:
- bai_giang_nhap_mon_tin_hoc_bai_3_cac_cau_truc_dieu_khien_dao.pdf