continue循环的问题

#include<stdio.h>
int main(void)
{
    char ch;
    while ((ch = getchar()) != '#')
    {
        if (ch != '\n')
            continue;
        
            printf("step 1\n");
            if (ch == 'c')
                continue;
            else if (ch == 'b')
                break;
            if (ch == 'h')
                goto laststep;
                    printf("step 2\n");
                    laststep:printf("step 3\n");
                
    }
    printf("done\n");
    return 0;


}我输入字符a为什么 输出是123 123.怎么循环2次呢。好奇怪!

如果第七行改成if(ch=='\n') 那不就是:每次输入字符后回车,都被continue给循环到while的位置,又要重新输入了。可我演示的时候输入a,后面的printf还是继续输出123

为什么没有跳转到while,提示继续输入。而是屏幕显示123呢.

………………ch是一个字符,不是一个字符串,如果你输入字符后回车,那么ch就是你输入的这个字符,你后面的那个回车是没有输入进来的。

因此你输入a+回车,会继续输出123.

当你直接输入回车,那么ch就是回车,if(ch=='\n')成立,然后就continue 到while

就一次啊,你这段代码我直接运行的

请教大佬,如果第七行改成if(ch=='\n') 那不就是:每次输入字符后回车,都被continue给循环到while的位置,又要重新输入了。可我演示的时候输入a,后面的printf还是继续输出123

为什么没有跳转到while,提示继续输入。而是屏幕显示123呢.

好难,就是想不明白!

有没有懂的小哥,给讲解一下吧。实在找不到答案!强迫症伤不起~~~