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

大神看看我哪里错了

public static void main(String[] args) {

int[] nums={89,-23,64,91,119,52};

System.out.println("成绩的前三名为");

Arrays.sort(nums);

for(int i=nums.length-1;i>=0;i--){

if(nums[i]>0&&nums[i]<100){

continue;

}

System.out.println(nums[i]);

if(i<nums.length-3){

break;

}


正在回答

5 回答

第一,if条件结构,应该为if(nums[i]<0||nums[i]>100),才跳出;

第二,if(i<nums.length-3)不对,不能以数组的长度来判断,我们不知道需要几次,只需要选出符合要求的三个最高成绩并排列打印出来就行;

第三,System.out.println(nums[i]);应该放到后面那个if判断之后,不然循环一次打印一次。

正确的不用定义方法程序:将你System.out.println("成绩的前三名为");之后改为

Arrays.sort(nums);

int count=0;

for(int i=nums.length-1;i>=0;i--){

        if(nums[i]<0||nums[i]>100){

            continue;

        }

            count++;

        if(count>3){

            break;

        }

System.out.println(nums[i]);

}


0 回复 有任何疑惑可以回复我~
#1

慕的地1533170 提问者

非常感谢!
2016-04-06 回复 有任何疑惑可以回复我~
#2

加油_hrh 回复 慕的地1533170 提问者

客气了,一样是初学,共勉
2016-04-07 回复 有任何疑惑可以回复我~

成绩在0-100 之间跳出了

0 回复 有任何疑惑可以回复我~

如果你这道题是和这一章的例题一样的话,那你第一个if应该为

if(nums[i]<0||nums[i]>100)

0 回复 有任何疑惑可以回复我~

&&  替换成||

0 回复 有任何疑惑可以回复我~
#1

隔壁王叔叔家的小孩

看错了,第一个if这样改: if(nums[i]>0&&nums[i]<100){ System.out.println(nums[i]); } else continue;
2016-04-02 回复 有任何疑惑可以回复我~

我有导入Arrays的 忘记复制了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

大神看看我哪里错了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信