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 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:

int age=22;
NSString *name=@"binh";

Kiểm tra điều kiện của đoạn mã sau:

if (age==22&&[name isEqualToString:@"binh"]) {
        NSLog(@"Tuổi của %@ là %d",name,age);
    }

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à: Tui ca 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){

  • //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ụ:

if ([name isEqualToString:@"binh"]) {
          NSLog(@"Đây là bình");
    } else {
        NSLog(@"Đây không phải là bình");
    }

=> 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:

for (int i=0; i<10; i++) {
        NSLog(@"%d",i);
    }

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!

kế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:
NSArray *arr=@[@"2",@"4",@"6",@"8"];
    
    for (NSString *str in arr) {
        NSLog(@"%@",str);
    }

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ụ:

int i=0;
    while (i!=-1) {
        NSLog(@"%d",i);
        i++;
}

=> 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:

int i=0;
    while (i<5) {
        NSLog(@"%d",i);
        i++;
    }

khi đó 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ụ:

    int k=6;
    do {
        NSLog(@"%d",k);
    } 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.

  • Cấu trúc điều khiển với nhiều lựa chọ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.

ví dụ:

int c=1;
   switch (c) {
       case 1:
           NSLog(@"true 1");
           break;
       case 2:
           NSLog(@"true 2");
           break;
           
       default:
           NSLog(@"default");
           break;
   }

Ở đâ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 :

http://www.mediafire.com/download/f7q3t3p0p6lg4v2/cauTrucDieuKhien%282%29.zip

Có gì trong phần tiếp theo:

Phần tiếp theo mình sẽ giới thiệu cho các bạn hiểu về tính đối tượng trong Objective C .

  • Nếu các bạn muốn biết thêm các kỹ thuật khác về ios, các bạn có thể tham khảo thêm các khóa học ios tại đây.

 

Add a Comment

Your email address will not be published. Required fields are marked *