c语言 输入正确后如何跳出循环

c语言 控制台输入3个小写字母,输出对应的大写字母,如果输入字符不符合要求,要求能提示错误并重新循环输入,直到输入形式正确后执行大小写转换并退出

img

为什么第一次输入错误后 第二次即使输入正确格式 也会先提示错误再给出转换后的答案呢?

10-14行为啥不在循环里

修改如下:

img


#include "stdio.h"
int check_input(char a)
{
    if(a >= 'a' && a <= 'z')
    {
        return 0;
    }
    return 1;
}
int main()
{
    char a, b, c, A, B, C;
    printf("请输入3个小写字母: \n");
    while(1)
    {
        scanf("%c %c %c",&a, &b, &c);
        printf("输入的字符为 %c %c %c\n",a, b, c);
        if(check_input(a) || check_input(b) || check_input(c))
        {
            printf("输入的字符不符合要求,请重新输入。\n");
            continue;
        }
        A = a - 32;
        B = b - 32;
        C = c - 32;
        printf("%c %c %c\n",A, B, C);
        break;
    }
}