C语言,一个程序怎么突然就变成无限循环了?

请看如下程序:

#include<stdio.h>
int main(void)
{
    int guess=1;
    
    
    
    printf("please enter y or n.\n");
    
    while(getchar()!='y')
    {
        printf("Well ,then, is it %d?\n",guess++);
        
        while(getchar()!='\n')
        {
        
        printf("还会继续吗?\n");
            continue;
            printf("2222还会继续吗?\n");
        }
        
        
        
        printf("测试会不会有这一行。\n");
    }
    
    printf("Done!\n");
    
    return 0;
}

这里 测试的时候,不输入 字符, 只是不停的按回车,前几次 还好,如下:

img

但是 第7次 再按 回车 之后,就变成 无限循环了, 这是 为什么?

img

img

这么改下试试:

#include<stdio.h>
int main(void)
{
    int guess = 1;

    printf("please enter y or n.\n");
    while ((getchar()) != 'y')//修改
    {
        printf("Well ,then, is it %d?\n", guess++);
        while ((getchar()) != '\n')//修改
        {
            printf("还会继续吗?\n");
            continue;
            printf("2222还会继续吗?\n");
        }

        printf("测试会不会有这一行。\n");
    }
    printf("Done!\n");
    return 0;
}