for循环中and运算符和or运算符有什么区别?

-5 c loops logical-operators

此循环会因 (​​||)“OR”运算符而中断,但不会因 (&&)“AND”运算符而中断。这是为什么?两者有什么区别?

    int a;
    char ch;
    for(a=1;a<=20;a++)
    {
        printf("%d\n",a);
        printf("do you want to break the loop(y/n)");
        scanf(" %c",&ch);
        if(ch=='y' && ch=='Y')
        {
            break;
        }

    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

tem*_*def 5

该声明

if (ch=='y' && ch=='Y')
{
    break;
}
Run Code Online (Sandbox Code Playgroud)

表示“如果该字符同时是 字符y和 字符Y,则退出循环。” 但这是不可能发生的,因为一个角色不能同时是yY

另一方面,代码

if (ch=='y' || ch=='Y')
{
    break;
}
Run Code Online (Sandbox Code Playgroud)

表示“如果字符是 或yY则退出循环。” 一个角色确实有可能是 或 之一yY即使它不能同时是两者。