不理解,求各位大神道友解答,谢谢谢谢谢.........

来源:7-1 编程练习

三分世界

2016-01-26 16:56

package jin;

import java.util.Arrays;

 


public class HelloWorld1{

 public static void main(String[] args){

     HelloWorld1 hello = new HelloWorld1();

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

          Arrays.sort(scores);

          int[] newArrays = hello.getnewArrays(scores);

             System.out.println(Arrays.toString(newArrays));

}

          

 public int[] getnewArrays(int[] scores){

 for(int i = 0; i<scores.length; i++){

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

 continue;

     }

     int[] newArrays= {scores[i]};

 //   System.out.println(Arrays.toString(newArrays));

   

 }

      return newArrays; //(这里为什么不能返回数组?????)

                        //(而在方法中设定无返回值,直接输出newArrays就可以! 求解,谢谢谢!!!!)

 

 }

 

  


}


写回答 关注

3回答

  • zuoming
    2016-01-26 17:47:28
    已采纳

        public static void main(String[] args) {
            HelloWorld hello = new HelloWorld();
            
            int[] scores =new int[]{89,-23,64,91,119,52,73};
            
            System.out.println("考试成绩的前三名为:");
            hello.print(scores);        
        }
        
        //定义方法完成成绩排序并输出前三名的功能
        public void print(int[] scores){
            //统计有效成绩个数
            int count = 0;
            
            //先对数组进行排序(升序)
            Arrays.sort(scores);
            
            //输出前三名(由于是升序,所以需要倒序遍历)
            for(int i=scores.length-1;i>=0;i--){
                if(scores[i]<0 || scores[i]>100){
                    //如果成绩不在0-100范围之内,忽略结此次成绩,束本次循环,接下一次循环,否则继续
                    continue;
                }   
            //有效,个数加1
            count++;
            
            //输出成绩
            System.out.println(scores[i]);
            
            //如果成绩个数大于三了,结束循环
            if(count>=3){
                break;
            }
                
            }
        }

    三分世界

    谢谢回复!!不过我只是想问为什么这里不能返回数组,不是要实现 (输出有效成绩前三名)的功能

    2016-01-27 13:30:29

    共 1 条回复 >

  • 哥要奋斗
    2016-01-26 18:04:58

    import java.util.Arrarys;

    public class HelloWorld {

        

        //完成 main 方法

        public static void main(String[] args) {

            int [] scores=new int[] {89,-23,64,91,199,52,73}

            HelloWorld score = new HelloWorld();

              score.fa(scores);

            

            

        }

        

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

        

        public void fa (int [] scores){

            int k;

            Arrares.sort(scores);

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

            for(int i=0; i<scores.length;i++){

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

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

                   k++;

                   if(k==2){

                       break;

                   }

                }

                

            }

            

        }

        

        

        看看我写的超简单


  • zuoming
    2016-01-26 17:45:20

    因为你的数组创建在循环里了= =也就是你每循环一次,都创建一次= =你把他放到for前面创建就行了。不过你整个代码倒错都是错,拿出去结果也是错的

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

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

1165547 学习 · 17586 问题

查看课程

相似问题