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

求大神告知这套代码中的错误

import java.util.Arrays;

public class HelloWorld {

public static void main(String[] args) {

int[]scores= {89,-23,64,91,119,52,73};//定义一个数组保存成绩

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

HelloWorld hello=new HelloWorld();//定义对象

hello.Top3(scores);//调用方法保存数组

}

public void Top3(int[]scores){

       Arrays.sort(scores);

       int num=0;

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

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

               continue;

           num++;

           System.out.print(scores[i]+" ");

       }

   }

}

正在回答

5 回答

你这个i的赋值是咋回事?数组八个数,初始的i值是7。你的条件是i<3的时候i--。所以就错了


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

盖沧海 提问者

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

i>=0&&i<3这不矛盾了莫,后面是num<3就对了。

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

i>=0&&i<3   这个的问题  i的条件判断

0 回复 有任何疑惑可以回复我~
continue,那边是不是少了大括号;。
0 回复 有任何疑惑可以回复我~
#1

盖沧海 提问者

没有就把i<3改成num<3就好了
2017-11-29 回复 有任何疑惑可以回复我~

相当于i一直没有自减

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

盖沧海 提问者

public void big3(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]); } }
2017-11-29 回复 有任何疑惑可以回复我~
#2

盖沧海 提问者

这个呢?为什么这个就没错呢?
2017-11-29 回复 有任何疑惑可以回复我~
#3

盖沧海 提问者

不好意思我没注意后面是num<3
2017-11-29 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165787    人
  • 解答问题       17588    个

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

进入课程

求大神告知这套代码中的错误

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