将布尔参数传递给方法

时间:2020-05-06 19:55:26

标签: java parameters boolean parameter-passing

当我尝试传递在另一个方法中在本地声明的布尔参数时,编译器将提供错误:

错误:(40,71)Java:找不到符号符号:变量frei
位置:类flugVerein

获取传递的布尔变量的方法:

public static void verfügbar(int[] flugAnzahl, String[] vorname, String[] bezeichnung, int[] zeit, boolean frei) 

声明变量的位置:

public static void ganzeTag(int[] zeit, String[] vorname, String[] nachname, String[] bezeichnung) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Geben Sie die Bezeichnung des Fluges ein: ");
    String eingabe = sc.nextLine();
    boolean frei = false;

主方法中的方法调用:

verfügbar(flugAnzahl, vorname, bezeichnung, zeit, frei);

2 个答案:

答案 0 :(得分:1)

@Jwan我想您是指局部变量。

答案 1 :(得分:1)

由于您使用的是其他方法,因此无法访问frei变量。它是在ganzeTag方法中声明的,但是您试图在main方法中对其进行访问。您可以做几件事。我认为最简单的方法是使其成为一个字段。

private static boolean frei;

然后使用ganzeTag方法:

public static void ganzeTag(int[] zeit, String[] vorname, String[] nachname, String[] bezeichnung) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Geben Sie die Bezeichnung des Fluges ein: ");
    String eingabe = sc.nextLine();
    frei = false; // don't put the boolean.

实际上,您甚至不需要该行,因为布尔字段的默认值为false。

public static void ganzeTag(int[] zeit, String[] vorname, String[] nachname, String[] bezeichnung) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Geben Sie die Bezeichnung des Fluges ein: ");
    String eingabe = sc.nextLine();