CẤU TRÚC ĐIỀU KHIỂN TRONG OBJECTIVE C Bài này mình sẽ giới thiệu các cấu trúc điều khiển trong Objective C.. Cũng giống các ngôn ngữ khác cấu trúc điều khiển là rất quan trọng, giúp điều
Trang 1CẤU TRÚC ĐIỀU KHIỂN TRONG OBJECTIVE C
Bài này mình sẽ giới thiệu các cấu trúc điều khiển trong Objective C Cũng giống các ngôn ngữ khác cấu trúc điều khiển là rất quan trọng, giúp điều hướng code, chạy giải thuật một cách tuyệt vời
Để giúp các bạn hiểu rõ, mình sẽ giới thiệu cụ thể cách khai báo và cách dùng của từng cấu trúc một cách cụ thể
Đầu tiên là cấu trúc IF, IF ELSE kiểm tra true or false:
– Cấu trúc IF chỉ thực hiện lệnh khi điều kiện trả về đúng:
Khai báo tổng quát!
+) IF(điều kiện){
// code khi điều kiện đúng
};
ví dụ:
khai báo 2 biến sau:
1 int age= 22 ;
2 NSString *name=@"binh";
Kiểm tra điều kiện của đoạn mã sau:
1 if( age== 22 && [ name isEqualToString:@"binh" ]) {
2 NSLog(@"Tuổi của %@ là %d",name,age ) ;
3 }
nếu age==22 true và name==binh true=>thực hiện đoạn lệnh bên trong if
log ra kết quả là: Tuổi của binh là 22
– IF ELSE khi điều kiện đúng thực hiện dòng lệnh bên trong IF, ngược lại không đúng thực hiện các dòng lệnh bên trong ELSE
khai báo tổng quá:
IF(điều kiện==true){
Trang 2o //thực hiện khi điều kiện đúng
}ELSE{
// ngược lại khi điều kiện không đúng thực hiện các lệnh trong else
};
ví dụ:
1 if([ name isEqualToString:@"binh" ]) {
2 NSLog(@"Đây là bình" ) ;
3 } else {
4 NSLog(@"Đây không phải là bình" ) ;
5 }
=> Nếu name là bình thì log ra :”Đây là bình”
Ngược lại không phải bình: thì log ra “Đây không phải là bình”
Tiếp theo mình giới thiệu các bạn về Vòng lặp:
Vòng lặp hữu hạn, biết được số lượng lần lặp:
+) for (giá trị biến khởi tạo; điều kiện lặp; bước nhảy sau mỗi lần lặp) {
// mã code;
}
Đầu tiên khai báo biến khởi tạo gán giá trị khởi tạo, kiểm tra nếu biến khởi tạo thoả mãn điều kiện thì thực hiện các dòng code bên trong thân hàm for, cuối cùng tăng biến khởi tạo theo bước nhảy, nếu không thoả mãn thoát khỏi vòng for và vòng lặp cứ thực hiện như thế đến khi out vòng for
ví dụ: in ra các số tự nhiên từ 0->9:
1 for( int i= 0 ; i< 10 ; i++ ) {
2 NSLog(@"%d",i ) ;
3 }
ban đầu i=0, kiểm tra thấy i<10 true, thực hiện log ra giá trị i=0, sau đó tăng i: i=1,
tương tự như thế lặp cho đến khi i=10, không thoả mãn điều kiện thì thoát khỏi for và không thực hiện các lệnh trong for nữa!
Trang 3kết quả:0 1 2 3 4 5 6 7 8 9
Lặp hữu hạn, duyệt từng đối tượng trong danh sách các đối tượng:
1 NSArray *arr=@ [ @"2",@"4",@"6",@"8" ] ;
2
3 for( NSString *str in arr ) {
4 NSLog(@"%@",str ) ;
5 }
Khai báo một mảng lưu danh sách cách đối tượng string
Vòng lặp khai báo một đối tượng str kiểu NSString, duyệt từng đối tượng trong mảng arr, mỗi một lần lặp ->đối tượng trong mảng được duyệt lần lượt lưu tạm trong đối tượng str, làm việc từng đối tượng thông qua str
Lặp vô hạn:
while (điều kiện) {
// mã code …0
};
Nếu điều kiện còn thoã mãn là true thì vòng lặp vô hạn, lặp với điều kiện … nếu điều kiện không đúng thì đoạn mã trong vòng lặp sẽ không được thực hiện lần nào
ví dụ:
1 int i= 0 ;
2 while( i!=- 1) {
3 NSLog(@"%d",i ) ;
4 i++;
5 }
=> sẽ lặp vô hạn, do điều kiện luôn đúng kết quả tăng 1 đơn vị vô hạn
tuy nhiên nếu ta chỉnh sửa ví dụ trên thành:
1 int i= 0 ;
2 while( i< 5) {
3 NSLog(@"%d",i ) ;
4 i++;
5 }
Trang 4khi đó vòng lặp sẽ bị dừng khi i>=5, lặp hữu hạn với điều kiện, kết quả : 0 1 2 3 4
Để khắc phục nhược điểm của while,Ta muốn đoạn mã sẽ thực hiện ít nhất 1 lần ta sử dụng do while
ví dụ:
1 int k= 6 ;
2 do {
3 NSLog(@"%d",k ) ;
4 }while( k< 5) ;
số k vẫn được log ra một lần trước khi kiểm tra điều kiên k<5 không thoả mãn
While kiểm tra điều kiên trước xong mới thực hiện vòng lặp
do while cho chạy it nhất một lần xong mới kiểm tra điều kiện
Chúng ta có thể sử dụng IF lồng nhau để đưa ra nhiều lựa chọn với nhiều điều kiện khác nhau Tuy nhiên nhìn code sẽ rắc rối khó quản lý, Ở trong Objective C cũng như các ngôn ngữ khác, có hỗ trợ kiểu nhiều lựa chọn
switch (điều kiện) {
case điều kiện1:
break;
case điều kiện2:
break;
default:
break;
}
Với điều kiện truyền vào, điều kiện sẽ kiểm tra xem nó đúng với case nào sẽ thực hiện các lệnh trong case đó Nếu không đúng với case nào, sẽ thực hiện các dòng lệnh default
như thế chúng ta có nhiều lựa chọn
Trang 5ví dụ:
1 int c= 1 ;
2 switch( c ) {
3 case 1 :
4 NSLog(@"true 1" ) ;
5 break;
6 case 2 :
7 NSLog(@"true 2" ) ;
8 break;
9
10 default:
11 NSLog(@"default" ) ;
12 break;
13 }
Ở đây điều kiện truyền vào là c, với c=1 thực hiện case 1: Trả về kết quả:true 1
full code :
1 http ://www.mediafire.com/download/f7q3t3p0p6lg4v2/cauTrucDieuKhien%282%29.zip