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

请大家帮我看下哪里错了,谢谢!!

import java.util.Arrays;

public class HelloWorld {

   

    //完成 main 方法

    public static void main(String[] args) {

        

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

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

        HelloWorld hello=new HelloWorld();

        hello.print(scores);

       

        

    }

    

    //定义方法完成成绩排序并输出前三名的功能

    

    public int print(int []scores){

        Arrays.sort(scores);

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

          

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

              for(int j=0;j<3;j++)

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

        }

        }

        }  

}


正在回答

2 回答

错误:自定义方法public int print(int []scores)规定了返回值类型int,但方法体内无return语句进行返回值操作,故报错

修正:将int改为void

代码逻辑问题:  1.if((scores[i])>0&&(scores[i])<100)楼主想用于筛选有效成绩,但在此题环境下较为冗杂,Array.sort()方法是默认升序排列,楼主又使用了(int i=scores.length-1;i>=0;i--)循环条件,加之预设数组中只有一个负值,所以没有必要

2.条件执行体内的嵌套循环逻辑错误,执行结果会变成一个有效成绩输出三次后,进行下一次有效成绩判断。

修成建议:1.有效值判定只保留100临界判定

2.定义一个计数变量,用于记录有效值个数以判断是否终止循环,并删除嵌套循环只输出一次有效值

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

qq_心机兔子_03655689 提问者

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

方法print没有返回值类型用void,&&表示与运算,||表示或,有一个成绩即可。用计数器进行计算并且输出指定的那个成绩。

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

举报

0/150
提交
取消

请大家帮我看下哪里错了,谢谢!!

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