Hỏi về câu lệnh điều kiện

a Đạt cho e hỏi là cái chỗ:
if (c == ’ ’ || c == ‘\n’ || c == ‘\t’)
state = 0;
else if (state == 0) {
state = 1;
++nword;
}
cái else if (state == 0) nó hoạt động như thế nào vậy ạ.

int main()
{
    int c, nline, nchar, nword, state;
    nline = nword = nchar = 0;
    state = 0;
    while((c = getchar()) != EOF) {
        ++nchar;
        if (c == '\n')
            ++nline;
        if (c == ' ' || c == '\n' || c == '\t')
            state = 0;
   **     else if (state == 0) {**
**            state = 1;**
            ++nword;
        }
    }
    printf("line\t word\t char\n%d\t %d\t %d\n", nline, nword, nchar);
    return 0;

}

else là phủ định cái if phía trên. if sau else như là 1 thực thi mới thôi, thêm 1 điều kiện nữa.

nghĩa là else if đó sẽ tương đương
if (!(c == ' ' || c == '\n' || c == '\t') && (state==0))

1 Like

else if (state == 0) {
state = 1;
++nword;
}

Khi mà state ==0 thì nó sẽ đưa về state = 1, phải không a

Câu lệnh if sẽ thực hiện tuần tự từ trên xuống dưới, rơi vào if nào đúng thì làm, không đúng thì làm phần else.
=> Khi if ở trên saistate == 0 thì nó sẽ đưa về **state =1 **

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?