Tải bản đầy đủ (.pdf) (31 trang)

Ip 04 control flow in c

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (620.39 KB, 31 trang )

Cấu trúc điều khiển
GV. Nguyễn Minh Huy

Nhập mơn lập trình - GV. Nguyễn Minh Huy

1


Nội dung




Biểu thức và toán tử trong C.
Cấu trúc rẽ nhánh
nhánh..
Cấu trúc lặp.
lặp.

Nhập mơn lập trình - GV. Nguyễn Minh Huy

2


Nội dung




Biểu thức và toán tử trong C.
Cấu trúc rẽ nhánh


nhánh..
Cấu trúc lặp.
lặp.

Nhập mơn lập trình - GV. Nguyễn Minh Huy

3


Biểu thức và toán tử trong C


Biểu thức trong C:


Là một dãy hữu hạn các toán hạng và toán tử.
tử.
a+b–d*c/e
(x >> (p + 1 - n)) & ~(~0 << n)

Toán hạng
hạng:: biến,
biến, hằng.
hằng.
 Tốn tử:
tử:









Tốn tử một ngơi:
ngơi:
tốn> a  ~a, !b, ++c.
Tốn tử hai ngơi
ngơi:: a <
phép toán>
toán> b  a + b, x / y.
Toán tử ba ngơi
ngơi:: tốn tử điều kiện ( ) ? :

Kết quả biểu thức
thức:: một giá trị số.
số.

Nhập mơn lập trình - GV. Nguyễn Minh Huy

4


Biểu thức và toán tử trong C


Toán tử số học
học::



Ký hiệu:
hiệu: +, -, *, /, %.





% chỉ dùng với số nguyên
nguyên..
/ kết quả phụ thuộc toán hạng
hạng..

int a = 5 % 3; // Đúng
float x = 5 % 3.0;
3.0; // Sai
int b = 5 / 3; // Chia nguyên
float y = 5.0 / 3; // Chia thực

Toán tử so sánh:
sánh:
Ký hiệu:
hiệu: >, <, >=, <=, ==, !=.
 Kết quả:
quả: 1 (true), 0 (false).


Nhập mơn lập trình - GV. Nguyễn Minh Huy

int a = 5 > 3;

int b = 5 == 3;
int c = 5 != 3;

// 1 (true)
// 0 (false)
// 1 (true)

5


Biểu thức và toán tử trong C


Toán tử logic:


Ký hiệu:
hiệu:


! (not), && (and), || (or).

Kết nối biểu thức so sánh.
sánh.
 Kết quả:
quả: 1 (true), 0 (false).





Toán tử trên bit:


Ký hiệu:
hiệu:






& (and), | (or), ^ (xor
(xor).
).
~ ((bù
bù).
).
>> (dịch
(dịch phải
phải),
), << ((dịch
dịch trái
trái).
).

int a = (5 > 3) && (4 > 7); // 0 (false)
int b = (5 > 3) || (4 > 7); // 1 (true)
int c = !(5 == 3);
// 1 (true)


short a = 5 & 6; // 0101 and 0110
short b = 5 | 6; // 0101 or 0110
unsigned short c = ~1; // not 0001
short d = a >> 1;

Thao tác trên bit dữ liệu
liệu..

Nhập mơn lập trình - GV. Nguyễn Minh Huy

6


Biểu thức và toán tử trong C


Toán tử tăng
tăng,, giảm:
giảm:
Ký hiệu:
hiệu: ++, --.
--.
 Tăng
Tăng//giảm 1 đơn vị trên biến
biến..









Tiền tố
tố:: tính trước biểu thức
thức..
Hậu tố
tố:: tính sau biểu thức
thức..

int
int
int
int

a=5
5++
++;;
a = 5;
b = ++
++a
a * 4;
c=a
a++
++ * 4;

// Sai
// b = 24
// b = 20


Toán tử gán
gán::


Ký hiệu:
hiệu: =, <
phép toán
toán>=
>=
a =
toán>= b;
 a = a
toán> b;



toán>:
>:



+, -, *, /, %,
&, |, ^, >>, <<.

Nhập môn lập trình - GV. Nguyễn Minh Huy

int a = 5;
int b, c, d;

d = c = b = a; // b = a
// c = b
// d = c
int e += a;
// e = e + a
int f *= a + 1; // f = f * (a + 1)
7


Biểu thức và toán tử trong C


Độ ưu tiên toán tử:
tử:

Nhập mơn lập trình - GV. Nguyễn Minh Huy

8


Nội dung




Biểu thức và toán tử trong C.
Cấu trúc rẽ nhánh
nhánh..
Cấu trúc lặp.
lặp.


Nhập mơn lập trình - GV. Nguyễn Minh Huy

9


Cấu trúc rẽ nhánh


Câu lệnh ifif--else:


Cú pháp
pháp::

if (<biểu thức logic>
logic>))
<Lệnh 1>;
[else
<Lệnh 2>;]



Mã giả
giả::
Nếu <biểu thức logic>
Lệnh 1
[Ngược lại
Lệnh 2]


<biểu thức logic>

sai

đúng
Lệnh 1

Lệnh 2

Ví dụ:
dụ:

// Câu lệnh ifif-else đủ
if (n > 0)
0)
a = a * 2;
else
a = a / 2;

Nhập môn lập trình - GV. Nguyễn Minh Huy

// Bỏ mệnh đề else
if (n > 0)
0)
a = a * 2;

// Dùng khối lệnh
if (n > 0)
0)
{

a = a * 2;
b = b + 1;
}
10


Cấu trúc rẽ nhánh


Câu lệnh ifif--else:


Lưu ý:






Biểu thức logic phải đặt giữa ( ).
 Giá trị 1: true.
 Giá trị 0: false.
if
if--else là câu lệnh phức
phức..
 Khơng có ; sau if hoặc else
else..
if
if--else có thể lồng nhau
nhau..

 else tương ứng if gần nhất
nhất..

if n > 0
// Sai
a = a * 2;
if ((1
1)

// Luôn đúng
a = a * 2;

if ((n
n > 0)
0) ;
// Sai
a = a * 2;
else ;
a = a / 2;
if ((n
n > 0)
0)
// ifif-else lồng
if ((a
a > b)
b)
c = c + 1;
else
c = c – 1;


Nhập môn lập trình - GV. Nguyễn Minh Huy

11


Cấu trúc rẽ nhánh


Câu lệnh ifif--else:


if
if--else lồng nhau
nhau,, kiểm tra điều kiện trên cùng 1 biến
biến::

if (dtb >= 8)
loai = ““Gioi
Gioi”;
”;
else
if (dtb >= 6.5)
loai = ““Kha
Kha”;
”;
else
if (dtb >= 5)
loai = ““Trung
Trung binh
binh”;

”;
else
loai = ““Yeu
Yeu”;
”;

Nhập mơn lập trình - GV. Nguyễn Minh Huy

if (dtb >= 8)
loai = ““Gioi
Gioi”;
”;
else if (dtb >= 6.5)
loai = ““Kha
Kha”;
”;
else if (dtb >= 5)
loai = ““Trung
Trung binh
binh”;
”;
else
loai = ““Yeu
Yeu”;
”;

12


Cấu trúc rẽ nhánh



Câu lệnh switch
switch--case:


Cú pháp
pháp::

switch (thức>
>)
{
[case <giá trị 1>:
<Lệnh 1>;
break;
case <giá trị 2>:
<Lệnh 2>;
break;
....]
[default:
<Lệnh N>;]
}

Nhập môn lập trình - GV. Nguyễn Minh Huy

// Câu lệnh if
if--else tương đương
if (<
(

biểu thức
thức>
> == <
giá trị 1>)
<Lệnh 1>;
else if (<
(biểu thức
thức>
> == <
giá trị 2>)
<Lệnh 2>;
C
else
<Lệnh N>;

13


Cấu trúc rẽ nhánh


Câu lệnh switch
switch--case:
switch (thu)
thu)
{
case 1:

printf(“Chu
printf
(“Chu nhat
nhat”);
”); break;
case 2:
printf(“Thu
printf
(“Thu hai”);
hai”); break;
case 3:
printf(“Thu
printf
(“Thu ba”);
ba”); break;
case 4:
printf(“Thu
printf
(“Thu tu
tu”);
”); break;
case 5:
printf(“Thu
printf
(“Thu nam”);
nam”); break;
case 6:
printf(“Thu
printf
(“Thu sau”);

sau”); break;
case 7:
printf(“Thu
printf
(“Thu bay”); break;
}

Nhập môn lập trình - GV. Nguyễn Minh Huy

14


Cấu trúc rẽ nhánh


Câu lệnh switch
switch--case:


Lưu ý:





Biểu thức phải đặt giữa ( ).
Giá trị ở mệnh đề case
case::
 Giá trị đơn
đơn..

 Không là miền giá trị.
trị.
Câu lệnh break
break::
 Ngắt giữa các case
case..
 Có thể bỏ để ghép các case
case..

Nhập mơn lập trình - GV. Nguyễn Minh Huy

switch a + b // Sai
{
y
}
switch (a
(a + b)
b)
{
case > 5:
y
}

// Sai

15


Cấu trúc rẽ nhánh



Câu lệnh switch
switch--case:
switch (thu)
thu)
{
case 2:
case 3:
case 4:
case 5:
case 6:
printf(“
printf
(“Ngay
Ngay lam viec
viec”);
”); break;
case 1:
case 7:
printf(“
printf
(“Ngay
Ngay nghi
nghi”);
”); break;
default:
printf(“
printf
(“Ngay
Ngay khong ton tai”);

}

Nhập mơn lập trình - GV. Nguyễn Minh Huy

16


Nội dung




Biểu thức và toán tử trong C.
Cấu trúc rẽ nhánh
nhánh..
Cấu trúc lặp
lặp..

Nhập mơn lập trình - GV. Nguyễn Minh Huy

17


Cấu trúc lặp


Xét chương trình xuất số:
số:



Xuất các số nguyên từ 1 đến 10.




Thực hiện 10 lần lệnh xuất
xuất..

Xuất các số nguyên từ 1 đến 100.
Thực hiện 100 lần lệnh xuất
xuất!!
!!
 Dùng lệnh lặp.
lặp.



Nhập mơn lập trình - GV. Nguyễn Minh Huy

18


Cấu trúc lặp


Câu lệnh while và dodo-while:


Cú pháp
pháp::


// Câu lệnh while
while (<
(<điều
điều kiện lặp>)
lặp>)
<Lệnh>;
Lệnh>;
// Câu lệnh while tương đương
<Lệnh>;
Lệnh>;
while (<
(<điều
điều kiện lặp>)
lặp>)
<Lệnh>;
Lệnh>;
đúng
<điều kiện lặp>

// Câu lệnh do
do--while
do
{
<Lệnh>;
Lệnh>;
} while (<
(<điều kiện lặp>
lặp>);


Lệnh

<điều kiện lặp>

đúng

Lệnh

sai

Nhập mơn lập trình - GV. Nguyễn Minh Huy

sai

19


Cấu trúc lặp


Câu lệnh while và dodo-while:


Ví dụ:
dụ:

// Câu lệnh while
printf(“
printf
(“Nhap

Nhap vao n = “);
scanf(“%d”,
scanf
(“%d”, &n);

// Câu lệnh do
do--while
printf(“Nhap vao n = “);
scanf(“%d”, &n);

i = 1;
while (i
(i <= n
n))
{
printf(“%d”,
printf
(“%d”, i);
i++;
}

i = 1;
do
{

Nhập mơn lập trình - GV. Nguyễn Minh Huy

printf(“%d”, i);
printf(“%d”,
i++;

} while (i
(i <= n
n);
);

20



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×