猿问

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

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]);

    }


慕慕7419132
浏览 1435回答 4
4回答

yanrun

第一你的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]);     } }

老吕被占用

少一个结束}

发光的石头j

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

Caballarii

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

相关分类

Java
我要回答