为了账号安全,请及时绑定邮箱和手机立即绑定

代码&&和||的区别到底是什么,下面的代码为什么不能正确筛选0-100的成绩?

代码&&和||的区别到底是什么,下面的代码为什么不能正确筛选0-100的成绩?

恶化石头 2016-07-02 09:06:11
package imoocjava8_1;import java.util.Arrays;public class helloWorld {public static void main(String[] args){ int[] scores ={89,-23,64,119,52,73};//成绩数组 helloWorld big3 = new helloWorld();//创建新的对象并命名为big3    big3.showtop(scores);//调用方法“showtop3”,并导入成绩数组    }/* * 功能:输出考试成绩的前三名,定义一个整型参数数组的方法,用来传入成绩数组 */ public void showtop(int[] scores){ Arrays.sort(scores);//使用Arrays.sort()方法实现数组的排序 int num=0;//保存有效成绩的数量 for(int i=scores.length-1;i>=0;i--){//倒序遍历数组中的每一个分数 if(scores[i]<=0&&scores[i]>=100){//判断成绩的有效性 continue;//如果成绩无效,则跳出本次循环,忽略此成绩 } num++;//有效成绩数+1 if(num>3){//判断有效成绩的数量 break;//如果成绩大于3,则结束循环,准备输出成绩的前三名 } System.out.println("成绩排名前三的是:"+scores[i]);} }}运行结果如下:成绩排名前三的是:119成绩排名前三的是:89成绩排名前三的是:73
查看完整描述

5 回答

?
明漠君

TA贡献16条经验 获得超6个赞

所以

if(scores[i]<=0&&scores[i]>=100){//判断成绩的有效性

是不对的,一个数字不可能既小于零又大于一百,应该用或。

查看完整回答
1 反对 回复 2016-07-02
?
漠然的笑

TA贡献26条经验 获得超9个赞

你的这句 if(scores[i]<=0&&scores[i]>=100){//判断成绩的有效性   这个判断条件有问题,永远不会走到,而且所有数都满足正常需求,哪里有数字同时<0并且又>100的啊,这里逻辑错了应该用||   。   &&:表示逻辑与,表示前后2个条件必须同时满足才可以执行判断中的语句,||表示逻辑或,只要有一个判断条件满足就可以执行。同时注意&&的短路现象,就是第一个条件不满足,后面不用看了,肯定走不到这块判断逻辑。还要学会  & 与 | 的位运算。

查看完整回答
反对 回复 2016-07-05
?
明漠君

TA贡献16条经验 获得超6个赞


&&是与,||是或。

可以理解为

 (小张是学生)&&(小张是女孩)→→→→小张是女学生;

(小张是学生)||(小李是学生)→→→→小张和小李中至少有一个满足“是学生”。

查看完整回答
反对 回复 2016-07-02
  • 5 回答
  • 0 关注
  • 2054 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信