if(i==k || k==j || j==i)
continue;
这个表达式的理想作用是如果其中任意两个数相同则执行continue,但是请问逻辑与如果判断到i==k则不用判断k==j是否为真,那么第一个逻辑与表达式则为真,则后面的逻辑与因为只需要一个操作数为真则为真,那么是不是只判断了i==k是否为真,与理想作用不符合?
与理想作用符合的。
个人认为和理想作用是符合的。
||
关键字在判断了第一个为真了之后,就不会往后执行了并不存在你所说的,只判断了i==k是否为真
的情况!
使用如下代码作为测试
#include<stdio.h>
int main()
{
int i,k,j;
while(1)
{
printf("pls input [i j k]: ");
scanf("%d %d %d",&i,&j,&k);
if( i==k || k==j || j==i)
{
printf("good!\n");
}
else{
printf("bad!\n");
}
}
return 0;
}
可以看到,不管是那两个数相等,都能正确判断出结果。
注意,你写的这个判断语句,并不会判断3个数都相等的情况。3个数相等显然也是符合其中两个相等的条件的
如果对你有帮助,还请点个采纳,万分感谢!