【问题标题】:i can't call a method with variables that are declared in a code block我不能使用在代码块中声明的变量调用方法
【发布时间】:2020-10-23 09:39:55
【问题描述】:

我不能使用在代码块中声明的变量调用方法。 (就像在我的情况下,for 循环中的 if 语句)

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    private static ArrayList<Integer> arrayList = new ArrayList<>();
    private static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        int input;

        System.out.println("Enter 5 integers");
        for (int i = 0; i <= 4; i++) {
            input = scanner.nextInt();
            arrayList.add(input);
        }
        isSorted(arrayList);
    }

    public static void isSorted(ArrayList<Integer> arrayList) {
        boolean sorted;
        boolean dSorted;
        for (int i=0; i<=3; i++) {
            if (arrayList.get((i+1)) > arrayList.get(i)) {
                sorted = true;
            } else if (arrayList.get((i+1)) < arrayList.get(i)) {
                dSorted = true;
            } else {
                sorted = false;
            }
        }
        printResult(sorted, dSorted);
    }

    public static void printResult(boolean sorted, boolean dSorted) {
        if(sorted) {
            System.out.println("This set of numbers is sorted in ascending order.");
        } else if(dSorted) {
            System.out.println("This set of numbers is sorted in descending order.");
        } else {
            System.out.println("This set of numbers is not sorted at all.");
        }
    }
}

编译错误:

类似错误:(33,21) java: 排序的变量可能尚未初始化

【问题讨论】:

  • boolean sorted = false;替换boolean sorted;

标签: java variables


【解决方案1】:

你应该只初始化变量:sorted 和 dsorted

【讨论】:

    【解决方案2】:

    问题是,您不能保证两个变量都在循环中被初始化。这取决于传递给方法的列表。

    因此你必须初始化那些变量(可能是假的)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-23
      • 1970-01-01
      • 2018-11-09
      相关资源
      最近更新 更多