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

求大神帮我看下代码,运行报错

package zhuyong1;

import java.util.Arrays;

public class Yoo {

public static void main(String[] args) {

int[] scores={20,-52,39,96,57,45,43};

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

Yoo hello=new Yoo();

hello.showTop3(scores);

}

public void showTop3(int[] scores){

Arrays.sort(scores);

int nums=0;

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

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

continue;

}

nums++;

if(nums>3);{

break;

}

}

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

}


}



正在回答

2 回答

1.

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

这句中的i定义是在for循环里面,而System.out.println(scores[i]);在for外面,i没有定义。

2.

if判断语句中scores[0] = -52,满足<0条件了就不会往下执行了。你最后得不到前三名的结果。

3.

我改了一下程序:

import java.util.Arrays;

public class demo {
	public static void main(String[] args) {
		int[] scores = { 20, -52, 39, 96, 57, 45, 43 };
		System.out.println("考试成绩前三名为:");
		showTop3(scores);
	}
	public static void showTop3(int[] scores) {
		Arrays.sort(scores);
		for ( int i = scores.length - 1; i > scores.length-1-3; i--) {
			System.out.println(scores[i]);
		}
	}
}


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

zhuyong918 提问者

谢谢你,非常感谢,终于弄懂了。
2015-08-11 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

求大神帮我看下代码,运行报错

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