if(n==('A'|'a')) 与 if(n=='a'|n=='A')有啥区别

if(n==('A'|'a')) 与 if(n=='a'|n=='A')有啥区别

public class ArrayDemo {
    public static void main(String[] args) {
//定义一个字符数组ch并初始化
char[] chArr={'a','A','b','c','A','a'};
//循环遍历数组,统计字符’a’或’A’出现的次数
int x=0;
for(int n:chArr){
     if(n=='a'|n=='A') x++;
    
}

//打印输出统计数据
System.out.println("字符数组中字符’a’或’A’出现的次数为:"+x);
}
}

按照上面代码达到了练习的效果,但是在摸索的时候没太里面以下有啥区别

 if(n=='a'|n=='A') 得出的结果 是4;

if(n==('A'|'a'))得出的结果是2;

为什么呢。


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

符号优先级问题,第二个代码'A'|'a'等于a

  • 补充下在ASCII中a是97 A是65 换算成二进制是1100001和1000001 因为|是位与位相或所以最后是97
    2019-01-16 23:05:41
  • hsulzz 提问者 回复 qq_慕神9093329 #2
    不太理解,我是当作逻辑运算符来用的,逻辑运算符出来的结果应该是布尔值吧,然后布尔值跟变量做比较应该一直是false吧,为啥还是会输出2。。。。
    2019-01-16 23:25:54
  • hsulzz 提问者 回复 qq_慕神9093329 #3
    用eclipse测试了下确实是输出a。。。位运算符没学过我去看看 谢谢了
    2019-01-16 23:31:45
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师