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

这个怎么执行不了 ,哪步出问题了吗

package p;

import java.util.Arrays;

public class HelloWorld4 {

public static void main(String[] args){

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

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

HelloWorld4 hello=new HelloWorld4();

hello.showTop3(scores);

}

public void showTop3(int[] scores){

Arrays.sort(scores);

int num=0;

 for (int i=0; i<scores.length -1;i--){

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

continue;

}

num++;

if(num>3){

break;

}

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

}


}


正在回答

3 回答

不是没执行,是报错了吧?for (int i=0; i<scores.length -1;i--)  你这里的i ,0,-1,-2....., i<scores.length永远成立,死循环;而且你后面scores[-1] 得到的是什么?

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

老牛吃嫩草 提问者

非常感谢!
2017-07-07 回复 有任何疑惑可以回复我~

public class Mkdir {
   public static void main(String[] args) {


       int scores[] = {89,-23,64,91,119,52,73};
       System.out.println("考试成绩的前三名为:");
       Mkdir hello=new Mkdir();

       hello.showTop3(scores);
   }
   public void showTop3(int[] scores){
       Arrays.sort(scores);
       int num=0;
       for (int i=scores.length -1;i>=0&&num<3;i--){
           if(scores[i]<0&&scores[i]>100){
               continue;
           }
           num++;

           System.out.println(scores[i]);
       }return;


   }
   }

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

小木木_

return 去掉也可以
2017-07-06 回复 有任何疑惑可以回复我~
#2

慕盖茨6240735

for循环里的逻辑符号应该是||
2017-07-16 回复 有任何疑惑可以回复我~
#3

慕盖茨6240735 回复 慕盖茨6240735

看错了,是if里的,那个要改成||
2017-07-16 回复 有任何疑惑可以回复我~
#4

小木木_ 回复 慕盖茨6240735

你得先了解||(短路或),|(或),&&(短路与),&(按位与)这几个的用法 他们的特点
2017-07-17 回复 有任何疑惑可以回复我~
查看1条回复

循环那边条件应该为int i=scores.length -1; i>0;i--,因为是要成绩的前三名,所以要从后往前遍历数组

然后if的条件应该是scores[i]<0||scores[i]>100

最后再加一个大括号就好了

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

举报

0/150
提交
取消

这个怎么执行不了 ,哪步出问题了吗

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