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

为什么输出的结果一直是timeout? 这是死循环吗?

我运行下面的代码的结果永远是“timeout”。自己也看不出毛病,请大神指点一下。

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.scoreTop3(scores);
    }
        
    //定义方法完成成绩排序并输出前三名的功能
    public void scoreTop3(int[] scores){
        Arrays.sort(scores);
        int count=0;
        for(int i=scores.length - 1;i>=0;i--){
            while(scores[i]<0||scores[i]>100){
                continue;
            }
        
            count++;
            if(count>3){
                break;
            }
            
            System.out.println(scores[i]);
        
    }
    
}
}

    //完成 main 方法

    public static void main(String[] args) {

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

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

        HelloWorld hello=new HelloWorld();

        hello.scoreTop3(scores);

    }

        

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

    public void scoreTop3(int[] scores){

        Arrays.sort(scores);

        int count=0;

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

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

                continue;

            }

        

            count++;

            if(count>3){

                break;

            }

            

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

        

    }

    

}

}


提问者:慕无忌1424581 2018-02-25 18:53

个回答

  • huangzhong
    2018-02-25 21:59:48
    已采纳

    18行那里是要做if判断啊,写成while了,scores[i]一直是119,条件成立进入循环,接着continue又回到了while,所以死循环了。