Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển Bài 5 lap trinh ios cấu trúc điều khiển lap trinh ios
Trang 1Bài 5: C u trúc i u khi n ấ đề ể
C u trúc i êu khi n là gì?ấ đ ể
C u trúc i u khi n là m t o n mã (kh i mã) có ch c n ng i u khi n vi c th c thi ấ đề ể ộ đ ạ ố ứ ă đề ể ệ ự
mã trong kh i l nh ó sao cho phù h p v i i u ki n ố ệ đ ợ ớ đề ệ đượ đặc t ra, ho c tu n t theo ặ ầ ự
m t tr t t nh t n h ( ó là n h ngh a t hi u c a mình, nói dân gian cho d hi u)ộ ậ ự ấ đị Đ đị ĩ ự ể ủ ễ ể
Kh i l nh là gì?ố ệ
Kh i l nh là m t t p h p nhi u l nh v i nhau.ố ệ ộ ậ ợ ề ệ ớ
M i l nh ỗ ệ được ng n cách v i nhau b ng d u ch m ph y (; )ă ớ ằ ấ ấ ẩ
Ng n cách này ch n gi n là ch cho ngôn ng bi t r ng, ã k t thúc 1 câu l nh vàă ỉ đơ ả ỉ ữ ế ằ đ ế ệ
có th chuy n qua câu l nh m i ể ể ệ ớ
1 Câu l nh r nhánh - if else ệ ẽ
Câu l nh if có 2 ph n, ph n i u ki n và ph n câu l nh th c thi.ệ ầ ầ đề ệ ầ ệ ự
C u trúc câu l nh n , ch có if:ấ ệ đơ ỉ
Code:
if (<#condition#>) {
<#statements#>
}
câu l nh n này, statements ch th c hi n khi i u ki n là condition úng
Ví d : N u tôi là h c sinh gi i thì m tôi cho tôi i du l ch.ụ ế ọ ỏ ẹ đ ị
N u vi t m t cách "l p trình hoá" thì s nh sau:ế ế ộ ậ ẽ ư
Code:
if (<#Tôi là học sinh giỏi#>) {
<#Mẹ tôi cho tôi đi du lịch#>
}
ây th t n gi n thi u, b n c h c sinh gi i thì m i c i du l ch úng
không? Và ngượ ạc l i thì không đượ đc i du l ch.ị
Ph n i u ki n có th là k t qu c a m t toán t , m t hàm, ầ đ ề ệ ể ế ả ủ ộ ử ộ
Ví d : N u i m thi c a tôi l n h n ho c b ng 8 tôi là h c sinh gi i.ụ ế đ ể ủ ớ ơ ặ ằ ọ ỏ
Code:
if (<#Điểm thi >= 8#>) {
<#Tôi là học sinh giỏi#>
}
ây, b n s th y r ng, i m thi có th là m t toán t , b ng cách: i m thi c
trung bình c ng c a nhi u con i m khác v i nhau Phép so sánh ây, chúng ta ộ ủ ề đ ể ớ ở đ
Trang 2dùng toán t quan h ử ệ để so sánh, b n nhé ( ã bi t bài 4).ạ đ ế ở
Ngoài ra, ngôn ng Objective-C còn cung c p cho l p trình viên r nhánh n u i u ữ ấ ậ ẽ ế đ ề
ki n sai.ệ
Code:
if (<#condition#>) {
<#statements-if-true#>
} else {
<#statements-if-false#>
}
n ây ch c b n c ng hi u, câu l nh if-true ch th c thi khi i u ki n úng Câu
l nh if-false ch th c hi n khi i u ki n sai.ệ ỉ ự ệ đ ề ệ
Ví d ụ đố ớ ười v i tr ng h p i du l ch:ợ đ ị
Code:
if (<#Tôi là học sinh giỏi#>) {
<#Mẹ tôi cho tôi đi du lịch#>
} else {
<#Mẹ tôi mua cho tôi một cây guitar mới#>
}
ây b n ch có th , 1 là c i du l ch, 2 là c mua guitar Không bao gi x y
ra 2 vi c cùng lúc.ệ
Ho c ặ đố ớ ười v i tr ng h p i m thi:ợ đ ể
Code:
if (<#Điểm thi >= 8#>) {
<#Tôi là học sinh giỏi#>
} else {
<#Tôi có thể là học sinh khá, hoặc học sinh trùng bình, hoặc học sinh yếu#>
}
n ây s phát sinh thêm v vi c làm sao bi t rõ h c sinh ó y u hay trung bình
hay khá
Th t d , b n ch c n l ng các câu l nh if trong câu l nh if nh sau:ậ ễ ạ ỉ ầ ồ ệ ệ ư
Code:
if (<#Điểm thi >= 8#>) { // Lúc này điểm thi lớn hơn hoặc bằng 8
Trang 3<#Tôi là học sinh giỏi#>
} else { // Lúc này điểm thi đã nhỏ hơn 8
if (<#Điểm thi >= 6#>) { // Lúc này điểm thi lớn hơn bằng 6 nhưng lại nhỏ hơn 8
<#Tôi là học sinh trung bình#>
} else { // Lúc này điểm thi nhỏ hơn 6
<#Tôi là học sinh trung bình hoặc học sinh yếu#>
}
}
2 R nhánh switch case: ẽ
Cú pháp:
Code:
switch (<#expression#>) {
case <#constant#>:
<#statements#>
break;
default:
break;
}
T i sao l i sinh ra câu l nh này Nh b n th y r ng ví d i m thi, ta xét h c sinh ạ ạ ệ ư ạ ấ ằ ở ụ đ ể ọ trung bình, h c sinh y u, khi ó s m t nhi u th i gian ọ ế đ ẽ ấ ề ờ để ế vi t mã Do ó, hàm này đ
c sinh ra gi m b t th i gian l p trình Giúp cho l p trình viên rõ ràng h n
trong vi c nhìn o n mã, s không r i, không có nhi u kh i l nh nh câu l nh if.ệ đ ạ ẽ ố ề ố ệ ư ệ
C ng là ví d h c sinh g i cho ũ ụ ọ ỏ đến h c sinh y u, mình vi t l i b ng câu l nh switch ọ ế ế ạ ằ ệ
nh sau:ư
Code:
int DiemThi = 8;
switch (DiemThi) {
case 8: case 9: case 10:
NSLog(@"Học sinh Giỏi");
break;
Trang 4case 6: case 7:
NSLog(@"Học sinh Khá");
break;
case 4: case 5:
NSLog(@"Học sinh Trung bình");
break;
case 0: case 1: case 2: case 3:
NSLog(@"Học sinh Trung bình");
break;
}
n gi n là, c n úng giá tr nào thích h p, o n mã s d ng l i ó và th c thi
câu l nh bên trong i u ki n úng.ệ đ ề ệ đ
L u ý: k t thúc 1 i u ki n ho c nhóm i u ki n ph i có "break" N u không ư ế đ ề ệ ặ đ ề ệ ả ế
có break, o n mã s ch y tu t lu t t trên xu ng d đ ạ ẽ ạ ộ ộ ừ ố ướ i luôn ó b n i u này đ ạ Đ ề
b n có th th ngay l p t c ạ ể ử ậ ứ
3 Vòng l p for: ặ
Mình l y ví d th này: khi b n mu n i t t ng 1, lên ấ ụ ế ạ ố đ ừ ầ đế ần t ng 3, b n ph i bạ ả ước
t ng bừ ước theo t ng b c c u thang ó là cách ừ ậ ầ Đ đơn gi n nh t, úng không b n V yả ấ đ ạ ậ thì ta ph i suy ngh và ả ĩ đưa ra gi i thu t t t nh t ả ậ ố ấ để ướ b c Và gi i thu t ó là t o ra 1 ả ậ đ ạ vòng l p, vòng l p s b t ta bặ ặ ẽ ắ ước t b c thang ừ ậ đầu tiên đến b c thang cu i cùng ậ ố
ó là vòng l p for
C u trúc:ấ
Code:
for (<#initialization#>; <#condition#>; <#increment#>) {
<#statements#>
}
initialization: kh i t o m t bi n, bi n này s nh v trí mà vòng l p v a i qua.ở ạ ộ ế ế ẽ đị ị ặ ừ đ
condition: i u ki n c a bi n v trí v a t o Ngh a là gi i h n s l n ch y.đ ề ệ ủ ế ị ừ ạ ĩ ớ ạ ố ầ ạ
increment: s t ng ho c gi m c a bi n v trí.ự ă ặ ả ủ ế ị
statements: l nh th c thi m i l n d ng l i c a bi n v trí.ệ ự ở ỗ ầ ừ ạ ủ ế ị
Mình l y ví d , các b n s hi u ngay, nh sau: C ng t ng các s t 1 ấ ụ ạ ẽ ể ư ộ ổ ố ừ đến 5
Làm b ng tay: a = 1 + 2 + 3 + 4 + 5 = 15ằ
Còn n u b ng máy, tr trế ằ ừ ường h p b n vi t rõ ràng nh v y, và dùng toán t c ng ợ ạ ế ư ậ ử ộ
c ng thì s c
Còn n u s d ng vòng l p ế ử ụ ặ để làm i u này, s c c k đ ề ẽ ự ỳ đơn gi n.ả
Code:
Trang 5int Tong = 0; // Khởi tạo biến Tong (Tổng) để chứa giá trị được cộng vào
và gán cho nó giá trị ban đầu bằng 0
for (int i = 1; i < 6; i++) {
// Khởi chạy vòng for từ i = 1 đến i = 5 (i < 6)
Tong = Tong + i;
// Khi chạy đến i = 1, Tong = 0 + 1 = 1
// Khi chạy đến i = 2, Tong = 1 + 2 = 3
// Khi chạy đến i = 3, Tong = 3 + 3 = 6
// Khi chạy đến i = 4, Tong = 6 + 4 = 10
// Khi chạy đến i = 5, Tong = 10 + 5 = 15
}
// Khi chạy đến i = 5 vòng lặp tự động thoát, vì mình ràng buộc nó chạy đến vị trí khi i < 6.
// Lưu ý: ràng buộc i < 6, nghĩa là i sẽ chạy đến vị trí gần nhất với
6, chứ không dùng ở 4 hoặc 3.
NSLog(@"Tong: %i", Tong);
Sau này, khi làm quen thêm v i các bài nâng cao, b n s hi u thêm và v n d ng rõ ớ ạ ẽ ể ẫ ụ
h n v hàm này.ơ ề
4 Vòng l p while: ặ
ây c ng là m t lo i vòng l p, l p i l p l i th c hi n câu l nh khi i u ki n vãn
còn tho mãn.ả
C ng bài toán tính t ng t 1 ũ ổ ừ đến 5, nh trên, mình có th gi i b ng vòng l p while ư ể ả ằ ặ
nh sau:ư
Code:
int Tong = 0;
int i = 0;
// Khi bắt đầu chạy lần thứ nhất, Tong = 0 và i = 0
while (i < 5) {
i = i + 1; // Hoặc i++;
Tong = Tong + i;
// Khi chạy lần thứ 1 -> i = 1, Tong = 0 + 1 = 1; i < 5
Trang 6// Khi chạy lần thứ 2 -> i = 2, Tong = 1 + 2 = 3; i < 5
// Khi chạy lần thứ 3 -> i = 3, Tong = 3 + 3 = 6; i < 5
// Khi chạy lần thứ 4 -> i = 4, Tong = 6 + 4 = 10; i < 5
// Khi chạy lần thứ 5 -> i = 5, Tong = 10 + 5 = 15; i = 5
}
// Khi chạy lần thứ 6 -> i = 6, i > 5, nên vòng lặp tự dùng lại.
NSLog(@"Tong: %i", Tong);
Có ngh a là khi mà i u ki n còn tho mãn thì vòng l p còn ch y.ĩ đ ề ệ ả ặ ạ
L u ý: Vòng l p s ki n tra i u ki n tr ư ặ ẽ ể đ ề ệ ướ c khi th c hi n câu l nh bên trong ự ệ ệ
vòng l p ặ
5 Vòng l p do-while: ặ
C ng tũ ương t nh vòng l p while.ự ư ặ
Nh ng khác 1 ch là vòng l p này s ch y 1 l n tr ư ỗ ặ ẽ ạ ầ ướ c khi ki n tra i u ki n ể đ ề ệ
B n l u ý i m này ạ ư ở đ ể để ử ụ s d ng sao cho úng vòng l p vào thu t toán c a đ ặ ậ ủ
mình, tránh vi c x y ra vòng l p vô h n d n ệ ả ặ ạ ẫ đế n treo máy Nói thì ch quan ủ
ch trong lúc gi i thu t s b r t nhi u ứ ả ậ ẽ ị ấ ề đấ y b n ạ
C ng v i bài toán tính t ng t 1 ũ ớ ổ ừ đến 5, mình s gi i b ng vòng l p do-while nh ẽ ả ằ ặ ư sau:
Code:
int Tong = 0;
int i = 0;
do {
i++;
Tong = Tong + i;
} while (i < 5);
NSLog(@"Tong: %i", Tong);
6 Bài t p: ậ
1 Tính t ng các s t 1 ổ ố ừ đến 100
2 Tính t ng các s ch n t 1 ổ ố ẵ ừ đến 250
3 Tính t ng các s l chia h t cho 3 t 0 ổ ố ẻ ế ừ đến 1500
4 Bài toán dân gian cho b n:ạ
V a gà, v a chóừ ừ
Trang 7Bó l i cho trònạ
Ba mươi sáu con
M t tr m chân ch n.ộ ă ẵ
H i có bao nhiêu con gà, bao nhiêu con chó.ỏ
5 An và Bình là hai anh em Tu i c a An g p 3 l n tu i c a Bình T ng s tu i c a ổ ủ ấ ầ ổ ủ ổ ố ổ ủ
An và Bình là 12
H i An bao nhiêu tu i?ỏ ổ
H i Bình bao nhiêu tu i?ỏ ổ
Code:
Bài giải mình sẽ đăng tải sau, nếu bạn chưa có bài giải xác đáng.
Chúc các b n có nh ng bài gi i sáng t o, ạ ữ ả ạ đăng lên ây cho b n bè cùng th o lu n, đ ạ ả ậ
b n nhé.ạ
Và ghi nh nh ng l u ý mà mình có nói trong t ng c u trúc i u khi n.ớ ữ ư ừ ấ đ ề ể