Exercise 11: While-Loop And Boolean Expressions

 

Hôm nay chúng ta sẽ được học một vòng lặp nữa, while – loop, cũng như các biểu thức luận lý.
Trong C, thực sự không có kiểu boolean, có thể hiểu là 0 sẽ tương đương với false, và những số còn lại là true. Trong một biểu thức luận lý ( ví dụ i < argc) thì kết quả trả về chỉ có thể là 0 hoặc 1.
Chúng ta cùng thực hành ví dụ sau:
#include <stdio.h>
int main(int argc, char * argv[])
{
    //go through each string in argv

    int i = 0;
    while(i < argc)
    {
        printf("arg %d: %s\n", i, argv[i]);
        i++;
    }

    // let's make our own array of strings
    char *states[] =
    {
        "California", "Oregon", "Washington", "Texas"
    };

    int num_states = 4;
    while(i < num_states)
    {
        printf("state %d: %s\n", i, states[]);
        i++;
    }
    return 0;
}

Cấu trúc của vòng lặp while như sau:

while(TEST)
{
CODE;
}
Khi TEST = 1 (true) thì CODE sẽ được thực hiện. Nó rất giống với vòng lặp for, nói cách khác, while-loop là vòng lặp không biết trước số lần lặp.
Bạn hãy biên dịch như bên dưới và kết quả phải giống vậy.
$ make ex11
cc -Wall -g
ex11.c
$ ./ex11
arg 0: ./ex11
state 0: California
state 1: Oregon
state 2: Washington
state 3: Texas
$
$ ./ex11 test it
arg 0: ./ex11
arg 1: test
arg 2: it
state 0: California
state 1: Oregon
state 2: Washington
state 3: Texas
$
Chú ý: Cẩn thận kẻo mắc phải vòng lặp vô hạn (khi không có điều kiện dừng).
Đoạn code này khá đơn giản nên mình không giải thích.

Reseach

1. Thay đổi đoạn code đề sử dụng i– mà kết quả đúng.
2. Tìm hiểu thêm về chuỗi trong c (quang trọng).

END

Advertisements