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

为什么加了排序就无法编译了??是java少了东西吗?

为什么加了排序就无法编译了??是java少了东西吗?

慕慕7419132 2016-07-07 15:41:21
import java.util.Arrays; public class cz { public static void main(String[] args) {    int[] scores = {91, -23, 18, 89, 119, 98, 87, -98};    int n = 0;    Arrays.sort(scores);    for (int i = scores.length - 1; i >= 0; i--) {        if (scores[i] < 0 || scores[i] > 100) {            continue;        }        n++;        if (n > 3) {            break;        }        System.out.println(scores[i]);    }} 
查看完整描述

4 回答

已采纳
?
yanrun

TA贡献317条经验 获得超240个赞

第一你的for循环的循环变量i,没有定义类型,无法通过编译;第二数组长度为8,也就是说scores.length=8,而数组的下标是0到7,运行时会报下标越界的错误;第三,应该是i--而不是i++;第四,判断应该用if而不是while。

public static void main(String[] args) {
    int[] scores = {91, -23, 18, 89, 119, 98, 87, -98};
    int n = 0;
    Arrays.sort(scores);
    for (int i = scores.length - 1; i >= 0; i--) {
        if (scores[i] < 0 || scores[i] > 100) {
            continue;
        }
        n++;
        if (n > 3) {
            break;
        }
        System.out.println(scores[i]);
    }
}


查看完整回答
2 反对 回复 2016-07-07
?
老吕被占用

TA贡献1条经验 获得超0个赞

少一个结束}

查看完整回答
反对 回复 2016-07-07
?
发光的石头j

TA贡献1条经验 获得超0个赞

把for(i=scores.length;i>=0;i++)改成for{int i=scores.length-1;i>=0;i--}

查看完整回答
反对 回复 2016-07-07
  • 慕慕7419132
    慕慕7419132
    import java.util.Arrays;  public class cz { public static void main(String[] args){ int[] scores={91,-23,18,89,119,98,87,-98}; int n=0; Arrays.sort(scores); for(int i=scores.length-1;i>=0;i--){ while(scores[i]<0||scores[i]>100){ continue; } n++; while(n>3){ break; } System.out.println(scores[i]); } } } 这样还不行啊
  • 发光的石头j
    发光的石头j
    把报错发过来
  • 发光的石头j
    发光的石头j
    改编码
点击展开后面3
?
Caballarii

TA贡献1123条经验 获得超629个赞

要学会看报错信息,你for循环里的i没有定义,改成int i=scores.length以后还有数组越界的错误。建议使用Eclipse等IDE,不要再傻傻的用命令行编译了

查看完整回答
1 反对 回复 2016-07-07
  • 4 回答
  • 0 关注
  • 1437 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信