算法问题统计单词个数

这个程序是怎么执行的?最后的结果应该少一个单词个数,空格数比单词数少1,为什么能准确输出结果?

#include 
int main() {
    printf("输入一行字符:\n");
    char ch;
    int i,count=0,word=0;
    while((ch=getchar())!='\n') {
        if (ch==' ') {
            word=0;
        } else if (word==0) {
            word=1;
            count++;
        }
    }
    printf("总共有 %d 个单词\n",count);
    return 0;
}


一开始word就等于0,所以从第一个字符开始就走的else if啊
并不是一定要先检测到一个空格word才变成0的