30/09/2018, 19:35

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

a Đạt cho e hỏi là cái chỗ:
if (c == ’ ’ || c == ‘ ’ || c == ‘ ’)
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 == '
')
            ++nline;
        if (c == ' ' || c == '
' || c == '	')
            state = 0;
   **     else if (state == 0) {**
**            state = 1;**
            ++nword;
        }
    }
    printf("line	 word	 char
%d	 %d	 %d
", nline, nword, nchar);
    return 0;

}
Trần Hồng Phong viết 21:50 ngày 30/09/2018

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

CODE_VI_5216 viết 21:35 ngày 30/09/2018

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

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

Hoa Vo Van viết 21:46 ngày 30/09/2018

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

Bài liên quan
0