2020年3月18号解题思路

题目:
在这里插入图片描述
解题思路代码讲解:

//作者:Nstar
//时间:2020年3月18日
import java.util.Arrays;  //导包,因为程序中用到的Arrays.sort方法包涵在java.util.Arrays包中
public class Test18 {
    public static void main(String[] args) {   //入口方法
        int[] scores =new int[] {89,-23,64,91,119,52,73};   //第一步定义数组scores,并且进行初始化
              System.out.println("考试成绩的前三名为:");
               Test18 ts =  new Test18();   //第三步
                   //首先创建Test18类的对象
               ts.print_top3(scores);
               //通过类创建的对象去调用类中的print_top3方法,并且将数组scores作为实际参数传给方法进行处理
    }
    void print_top3(int[] scores){   //第二步,应考题要求,需要把所有过程集成在一个方法中
        //我们需要有一个有参无返回值的方法,形参为scores数组,这里不用担心和main方法里面的scores数组起冲突,因为只在print_top3方法中起作用
        Arrays.sort(scores);  //使用 Arrays类中的sort方法进行升序排序(也称从小到大)
        int a = 1;   //考题要求只打印前三个值,所以我们声明此变量,作为最内层if语句的判断条件(可以想象成开关)
        for (int i=scores.length-1;i>=0;i--){
            //int i=scores.length-1:我们把量得数组的长度作为循环变量,我们量得数组长度为7并且减一
            //减一是因为数组下标是从零开始,而量值是从一开始,如果不减一,在循环变量作为数组的下标的时候会出现数组越界错误
            //数组越界错误是因为此数组最大下标为6,不减一的话会出现下标为7,造成越界
            //i>=0:此代码就是说,当循环变量等于0的时候停止循环
            //i--:此代码就是当执行完一次循环的时候,循环变量值减一,也可以想成自减操作
            if (scores[i]>0&&scores[i]<100){   //if判断语句,scores[i]>0&&scores[i]<100为if语句表达式
                //我们把scores[i]>0和scores[i]<100作为同时判断的条件,如果同时满足这两个条件时,将进入下面的if选择语句
                if (a<=3){   //应考题要求需要打印满足条件的前三个值,所以if的表达式是当a=3的时候结束打印
                    System.out.println(scores[i]);
                    a++;   //每次打印之后,变量a的值自动加一,自增操作
                }
            }
        }
    }
           }

运行结果图:
在这里插入图片描述

发布了13 篇原创文章 · 获赞 0 · 访问量 259

猜你喜欢

转载自blog.csdn.net/ChinaNebula/article/details/104951516
今日推荐