问答详情
源自:7-1 编程练习

为什么这样会错?

import java.util.Arrays;

public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

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

        HelloWorld hello = new HelloWorld();

        System.out.println("考试的前三名为:"+hello.threescore(scores));

        

        

        

        

    }

    

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

    public void threescore(int[] scores) {

        Arrays.sort(scores);

        int nums = 0 ;

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

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

                continue;

            }

            nums++;

            if(nums>3) {

                break;

            }

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

        }

}


提问者:qq_忘川_2 2016-01-23 21:32

个回答

  • 寂静的魔术师
    2016-01-25 16:25:51

    改成if(num > 2){break;} 不然就会输出四个数了。

  • August_sky
    2016-01-23 22:14:56

    System.out.println("考试的前三名为:"+hello.threescore(scores));

    不能写在System.out.println里它是void的方法返回值是void

    要单独写

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

    hello.threescore(scores);


  • danteliujie
    2016-01-23 21:56:10

    System.out.println("考试的前三名为:"+hello.threescore(scores));

    是这一句有问题吧?

    这里面threescore返回值为空,void

    不应该再用来输出了