此循环会因 (||)“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)
该声明
if (ch=='y' && ch=='Y')
{
break;
}
Run Code Online (Sandbox Code Playgroud)
表示“如果该字符同时是 字符y和 字符Y,则退出循环。” 但这是不可能发生的,因为一个角色不能同时是y和Y。
另一方面,代码
if (ch=='y' || ch=='Y')
{
break;
}
Run Code Online (Sandbox Code Playgroud)
表示“如果字符是 或y,Y则退出循环。” 一个角色确实有可能是 或 之一y,Y即使它不能同时是两者。