if(i!=j!=k)与if(i!=k&&i!=j&&j!=k)有什么区别???

来源:百度知道 编辑:UC知道 时间:2024/05/27 16:10:59

有区别

if(i!=j!=k) 是从左向右运算
首先判断 i!=j 然后得出一个值 0 或 1
然后上面得出的值 0 或 1 和 k 比较 得出 0 或 1
这样说有点晕 举个例子

当i=1;j=2;k=1
(i!=j)==1 那么1!=k即(1!=1)==0 那么整个值为0 假
当i=1;j=2;k=0
(i!=j)==1 那么1!=k即(1!=0)==1 那么整个值为1 真
当i=1;j=1;k=0
(i!=j)==0 那么0!=k即(0!=0)==0 那么整个值为0 假
当i=1;j=1;k=1
(i!=j)==0 那么0!=k即(0!=1)==1 那么整个值为1 真

而 if(i!=k&&i!=j&&j!=k)
只要3个值不同就是真 即值为1

前一个(i!=j!=k)表示把变量i和j比较是否相同的真值(如i和j相同则表达式为假这个值就是0)再和变量k比较是否相同
后一个表示i j k三个变量是否不相等

if(i!=j!=k)与if(i!=k&&i!=j&&j!=k)的区别:if(i!=j!=k),先执行j!=k,如果为真,则为1,否则为0,然后再执行第一个“=”,即判断i是否为1(或0),如果不,则执行相应的语句。
而if(i!=k&&i!=j&&j!=k),是判断i、j、k三个数是否互不相等,如果是则执行相应的语句。