为了账号安全,请及时绑定邮箱和手机立即绑定

求大神指导下哪里出错了,为什么运行有问题

import java.util.Arrays;

public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

        HelloWorld hello=new HelloWorld();

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

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

hello.show(nums);

}

public void show(int[] nums){

Arrays.sort(nums);

int sum=0;

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

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

continue;

}

sum++;

if(sum>3){

break;

}

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

}

}

}      

运行结果:

考试成绩的前三名为
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at HelloWorld.show(HelloWorld.java:15)
at HelloWorld.main(HelloWorld.java:9)

正在回答

3 回答

循环从nums.length-1开始

0 回复 有任何疑惑可以回复我~
#1

戏剧人生3188129 提问者

噢噢,是的,谢谢啦
2016-05-30 回复 有任何疑惑可以回复我~

for(int i=nums.length;i>=0;i--)数组越界了。应该为:for(int i=nums.length-1;i>=0;i--)

0 回复 有任何疑惑可以回复我~

package com.imooc;

import java.util.Scanner;

/*

 * 功能:为指定的成绩加分,直到分数大于等于60为止

 * 输出加分前的成绩和加分后的成绩,并且统计加分的次数

 * 步骤:

 * 1.定义一个变量,用来统计加分的次数

 * 2.使用循环为成绩加分

 * 3.每次执行循环时加1分,并且统计加分的次数

 * 

 * 使用Scanner工具类来获取用户输入的值

 * Scanner类位于java.util包中,使用时需要导入此包

 * 步骤:

 * 1.导入java.util.Scanner

 * 2.创建Scanner对象

 * 3.接收并保存用户输入的值

 */

public class Demo01 {

public static void main(String[] args){

Scanner input=new Scanner(System.in); //创建Scanner对象

//print和println区别:println输出信息后会换行,而print不会换行

System.out.println("请输入您的考试成绩:");

int score=input.nextInt(); //获取成绩信息并保存在变量score中

int count=0;  //统计次数

System.out.println("加分前的成绩:"+score);

while(score<60){

score++;//每次循环加1分

count++;//统计加分的次数

}

System.out.println("加分后的成绩:"+score);

System.out.println("共加了"+count+"次!");

}

}


1 回复 有任何疑惑可以回复我~
#1

jinjin71

bad
2016-05-30 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165150    人
  • 解答问题       17581    个

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

进入课程

求大神指导下哪里出错了,为什么运行有问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信