for(int x = 0;x < s.length();x++){
char cr = s.charAt(x);
if(cr >= 'a' && cr <='Z' ){
smallCount++;
}else if(cr >= 'A'&& cr <='Z'){
bigCount++;
}
}
为啥可以这样写。char类型的'a'于int 类型的 97 是想等的,为啥想等,这是人家jvm认为的。
所以当你写从a--z的时候,其实还是一个范围,就是在[97,123]之间。
同理从'A'到'Z'。
如果这个不理解,还有个简单的例子,if(x>100 && x <200)这个例子中&&是不是也是一个范围的实现
其实底层是&&比较的是两个布尔值,&& 和& 不一样,或者说&&更干脆。true&&true当然没啥,可是true&false 和 true &&false就不一样了,&&一执行到false就不执行了,就是false输出了,相当于短路了一样,也叫短路与,而&叫逻辑与。