Exercise 11 Lập Trình C – Learn C The Hard Way


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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s