检查文本文件中的10个数字是否在增加,减少,不变或增长和减少

时间:2015-09-07 02:32:24

标签: java io

您可以在文本文件中键入任意10个数字。

public static void main(String[] args) throws IOException {
    Scanner sc = new Scanner(new FileReader("number.txt"));

    while (sc.hasNext()) {
        String Str = sc.next();
        String[] num = Str.split(",");
        int[] Num = new int[num.length];

        for (int i = 0; i < num.length; i++) {
            Num[i] = Integer.parseInt(num[i]);

            if (Num[0] < Num[1] && Num[1] < Num[2] && Num[2] < Num[3]
                    && Num[3] < Num[4] && Num[4] < Num[5]
                    && Num[5] < Num[6] && Num[6] < Num[7]
                    && Num[7] < Num[8] && Num[8] < Num[9]) {
                System.out.println("The array is growing.");
                break;
            } else if (Num[0] > Num[1] && Num[1] > Num[2]
                    && Num[2] > Num[3] && Num[3] > Num[4]
                    && Num[4] > Num[5] && Num[5] > Num[6]
                    && Num[6] > Num[7] && Num[7] > Num[8]
                    && Num[8] > Num[9]) {
                System.out.println("The array is decreasing.");
                break;
            } else if (Num[0] == Num[1] && Num[1] == Num[2]
                    && Num[2] == Num[3] && Num[3] == Num[4]
                    && Num[4] > Num[5] && Num[5] == Num[6]
                    && Num[6] == Num[7] && Num[7] == Num[8]
                    && Num[8] == Num[9]) {
                System.out.println("The array is constant.");
                break;
            } else if (Num[0] > Num[1] && Num[1] < Num[2]
                    || Num[2] > Num[3] && Num[3] < Num[4]
                    || Num[4] > Num[5] && Num[5] < Num[6]
                    || Num[6] > Num[7] && Num[7] < Num[8]) {
                System.out.println("The array is growing and decreasing.");
                break;
            }
        }
    }
}

我只是不确定检查数字的最后一行是在增长还是在减少。

任何人都可以提供帮助。感谢。

2 个答案:

答案 0 :(得分:1)

仅使用else。不再需要else if条款。

    while (sc.hasNext()) {
        String Str = sc.next();
        String[] num = Str.split(",");

        int[] Num = new int[num.length];
        for (int i = 0; i < Num.length; i++) {
            Num[i] = Integer.parseInt(num[i]);
        }

        if (Num[0] < Num[1] && Num[1] < Num[2] && Num[2] < Num[3]
                && Num[3] < Num[4] && Num[4] < Num[5] && Num[5] < Num[6]
                && Num[6] < Num[7] && Num[7] < Num[8] && Num[8] < Num[9]) {
            System.out.println("The array is growing.");
        } else if (Num[0] > Num[1] && Num[1] > Num[2] && Num[2] > Num[3]
                && Num[3] > Num[4] && Num[4] > Num[5] && Num[5] > Num[6]
                && Num[6] > Num[7] && Num[7] > Num[8] && Num[8] > Num[9]) {
            System.out.println("The array is decreasing.");
        } else if (Num[0] == Num[1] && Num[1] == Num[2] && Num[2] == Num[3]
                && Num[3] == Num[4] && Num[4] == Num[5] && Num[5] == Num[6]
                && Num[6] == Num[7] && Num[7] == Num[8] && Num[8] == Num[9]) {
            System.out.println("The array is constant.");
        } else {
            System.out.println("The array is growing and decreasing.");
        }
    }

另外,第三个条件(检查它是否恒定)是错误的。全部都应该是==

另一个问题是初始化Num[]。您应该首先在独立的Num[]中初始化所有 for loop。 <{1}} breaksif..else if..else中的<div ng-repeat="item in somedata.split(',')">{{item}}</div> 被删除。

答案 1 :(得分:0)

将代码重构为方法:

void checkArray(int[] arr) {
    if (arr.length < 2) {
        System.out.println("Array contains fewer than two elements.");
    } else if (arr[0] > arr[1]) {
        for (int i = 2; i < arr.length; i++) {
            if (arr[i] > arr[i-1]) {
                 System.out.println("Increasing and decreasing.");
                 return;
            }
        }
        System.out.println("Decreasing.");
    } else if (arr[0] == arr[1]) {
        for (int i = 2; i < arr.length; i++) {
            if (arr[i] != arr[i-1]) {
                 System.out.println("Increasing and decreasing.");
                 return;
            }
        }
        System.out.println("Constant.");
    } else {
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] < arr[i-1]) {
                 System.out.println("Increasing and decreasing.");
                 return;
            }
        }
        System.out.println("Increasing.");
    }
}