C语⾔与或⾮位运算Java判断中if条件#include <stdio.h>
int main(void) {
char c1=92;
c++string类型char c2=92;
printf("%d",c1|c2);
printf("%d",c1^c2);
printf("%d",c1&c2);
printf("%d",~c2);
return 0;
}
输出结果为
92 0 92 -93
^表⽰异或运算,c1与c2值相同,异或的结果为0
&表⽰按位与
~表⽰按位取反
|表⽰按位或
Java中if的问题
boolean a=false;
boolean b=false;
if(a=b){
System.out.printf("True");
}
else{
System.out.printf("False");
}
此时输出:False,因为a赋值为false,不会执⾏if下⾯;
if中改为a==b,输出为True,此时为正确的判断符;
若改b=true,则输出"True",因为a被赋值为true。
试想,当a ,b为int或者String类型时也会是这样吗?
public static void main (String[] args) throws java.lang.Exception
{
String a="aaa";
String b="aaa";
if(a=b){
System.out.println("ok");
}
else{
System.out.println("bad");
}
⽤=时,其他类型编译均不会通过,因为if()⾥⾯要求必须是boolean类型。
⽤==时,正常上⾯的例⼦改为a==b时输出ok。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论