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;
}
Bài liên quan
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))
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 sai và state == 0 thì nó sẽ đưa về **state =1 **