Professional Documents
Culture Documents
Chapter 4
Chapter 4
1
NỘI DUNG
2
4.1. Cấu trúc rẽ nhánh
4.1.1 Cấu trúc rẽ nhánh dạng if
4.1.2 Cấu trúc rẽ nhánh if – else
4.1.3 Cấu trúc rẽ nhánh if – elseif – else
4.2. Cấu trúc vòng lặp
4.2.1 Cấu trúc vòng lặp do…while
4.2.2 Cấu trúc vòng lặp while
4.2.3 Cấu trúc vòng lặp for
4.3. Các cấu trúc lệnh
4.3.1 Lệnh switch case
4.3.2 Lệnh rẽ nhánh break
4.3.3 Lệnh continua và goto
3
4.1. CẤU TRÚC LỆNH RẼ NHÁNH
4.1.1. Cấu trúc rẽ nhánh if START
Cú pháp:
if(condition)
{ condition N
statements; !=0?
…
Y
}
statements;
Giải thích: Kiểm tra điều_kiện
thỏa thì thực hiện các lệnh.
next statements;
4
4.1.2. Cấu trúc rẽ nhánh if và else
Cú pháp:
5
4.1.3. Cấu trúc rẽ nhánh if – else if - else
Cú pháp:
if(điều_kiện)
{ statements 1;
…
}
else if
{ statements 2;
…
}
else
statements 3;
6
LƯU ĐỒ
START
N N
BT1 !=0 ? BT2 !=0 ? BT3 !=0 ?
Y Y Y
7
4.2. CẤU TRÚC VÒNG LẶP
4.2.1. CẤU TRÚC VÒNG LẶP DO … WHILE
Cú pháp:
do
{
statements;
}
while(condition);
8
Giải thích:
9
Lưu đồ:
START
statements;
Y
condition!=0?;
next statements;
END
10
Example 4.1:
Cho chương trình sau. Tìm các giá trị X
#include<stdio.h>
#include<conio.h>
void main()
{
int X=10;
printf(“---TINH GIA TRI X---\n”);
do
{
X=X-2; //X=8, X=6, X=4
printf(“GIA TRI X= %d”, X);
}
while(X>=6);
getch();
} KQ: X=4
11
Example 4.2
12
Solution
#include<stdio.h>
#include<conio.h>
void main()
{
int a,b,n,S;
printf(“---TINH TONG S---\n”);
do
{
printf(“NHAP SO NGUYEN a= “);
scanf(“%d”, &a);
printf(“NHAP SO NGUYEN b= “);
scanf(“%d”, &b);
printf(“NHAP SO NGUYEN n= “);
scanf(“%d”, &n);
}
while(a<=n || b<=n);
S=a+b+n;
printf(“TONG S= %d”, S);
getch();
KQ: S=24
}
13
4.2.2. CẤU TRÚC VÒNG LẶP WHILE
Cú pháp:
while(condition)
{
statements;
}
14
Giải thích:
15
Lưu đồ
START
N
condition!=0?
END
16
Example 4.3
Viết chương trình tính tổng các số từ 1 ->8.
#include<stdio.h>
#include<conio.h>
void main()
{
int n=1,S=0;
printf(“TINH TONG CUA DAY SO TU 1 -> 10”)
while(n<8)
{
S+=n; //1, 3, 6, 10, 15, 21, 28
n++; //2, 3, 4, 5, 6, 7, 8
}
printf(“TONG CUA DAY SO TU 1 -> 10 S= %d”,S);
getch();
KQ: S=28
}
17
Example 4.4
Cho chương trình sau. Tìm các giá trị n,X,Y,Z.
#include<stdio.h>
#include<conio.h>
void main()
{
int n=3;
printf(“TINH GIA TRI n,X,Y,Z \n”);
while(n>10)
{
printf(“n= %d \n”, n);
n--;
}
n++;
X=n +5;
Y=X-3;
printf(“n= %d \n”, n)
printf(“X= %d \n”, X)
printf(“Y= %d \n”, Y)
getch();
}
18
4.2.3 CẤU TRÚC VÒNG LẶP FOR
Cú pháp:
for(initialization; condition; increase)
{
statements;
}
19
Giải thích
20
Lưu đồ
START
initialization;
N
condition!=0?
increase;
21
Example 4.5
Cho chương trình sau. Tìm các giá trị X và số lần lặp n.
#include<stdio.h>
#include<conio.h>
unsigned int n,X=1;
void main()
{
for(n=0;n<=4;n++)
{ //3, 5, 7, 9, 11
X=X+2; //8, 10, 12, 14, 16
Y=X+5;
}
}
KQ: X=11,Y=16,n=5
22
4.3. CÁC CẤU TÚC LỆNH
4.3.1. Lệnh switch case
Cú pháp:
23
Example 4.6
switch (z) //make decision
{
case(0):
{
P0=‘0’; break; //send ASCII 0
}
case(1):
{
P0=‘1’; break; //send ASCII 1
}
case(2):
{
P0=‘2’; break; //send ASCII 2
}
}
24
4.3.2. Lệnh break
Nếu nhiều vòng lặp, break thoát khỏi vòng lặp gần
nhất (switch-case).
25
Example 4.7
26
4.3.3. Lệnh continue
27
Example 4.8
28
4.3.4. Lệnh goto (goto nhãn)
29