大神求指教 为什么输不出成绩

来源:7-1 编程练习

潇洒派

2015-11-06 11:52

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.stuScore(scores);

        

        

        

    }

    

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

    public void stuScore(int[] scores){

        Arrays.sort(scores);

        int count = 0;

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

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

                continue;

            }

            count++;

            if(count>3){

                break;

            }

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

            


写回答 关注

5回答

  • yzzj
    2015-11-30 21:34:30

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

                 count++;

                if(count=>3){

                    break;

                }

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

                }

  • 一个追梦之人
    2015-11-10 17:21:21

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

                    continue;

                }

    这里很奇怪, ||代表的是并且,所以满足其中一个条件都会进入if里面,进入IF了,执行countinue命令,下面代码均不执行,跳出此次循环,进入下一次的FOR循环,怎么会有输出成绩呢?


  • Anima丨
    2015-11-06 14:45:25

    我猜你没点运行

  • sixGod
    2015-11-06 13:14:34

    不对,你的for循环中,应该每次循环都会走continue; 

    continue是中断循环的一种方式,当执行了continue,则当前循环结束,continue后面的代码不再执行,而是进入下一次循环,所以你的System.out.println(scores[i]);应该是从未被执行

  • sixGod
    2015-11-06 12:02:06

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

                    continue;

                }

    这里逻辑有问题,除了那个-23,你其他的数字都会因为上面的逻辑判断进入下一循环

Java入门第一季(IDEA工具)升级版

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

1165551 学习 · 17586 问题

查看课程

相似问题