5

这可能是一个非常愚蠢的问题,但我在 java 中调用方法时遇到问题。在我的计算机科学课上,我被要求用多种方法编写一个程序。在一种方法中,我将提示用户输入一个整数,返回该整数并将其存储在一个变量中。下一个方法是从前一个方法传递整数,如果整数是奇数则返回 true,否则返回 false。

我的问题是,当我尝试从 main 方法调用第二个方法时,我收到一条错误消息,提示“找不到符号。符号编号”我确定它与仅存在于其中的变量的范围有关getInput 方法,但如果程序无法从第一种方法中识别我的变量,我不知道如何让程序从我的第二种方法中打印值。

到目前为止,这是我想出的。(您可以忽略名为 printBanner 的方法,一个有效,我只是在接下来的两个 getInput 和 isOdd 上遇到了问题)

import java.util.Scanner;

public class MethodlabPractice {
  public static void main(String[] args) {
    printBanner();
    getInput();
    isOdd(number);
  } // end main

    public static void printBanner () {
     for (int count = 0; count != 10; count++)
        System.out.println("Beth Tanner");
    } // end printBanner

    public static int getInput() {
      Scanner input = new Scanner(System.in);
      System.out.println("Please enter an integer:");
          int number = input.nextInt();
          System.out.println(number);

          return number;
    } // end getInput

    public static boolean isOdd(int number) {
      boolean odd = number % 2 != 0;

    return odd;
    } // end isOdd
}// end class 
4

3 回答 3

7

You haven't defined the variable number within the scope of the main method.

int number = getInput();
isOdd(number);
于 2013-11-07T20:05:55.970 回答
4

getInput returns int, save it and then pass it

int number = getInput();
isOdd(number);

instead what you are trying to do is

getInput();
isOdd(number);  // passing number, but number is not defined

Or you can do:

isOdd(getInput());
于 2013-11-07T20:06:14.097 回答
1

您正在将参数传递numberisOdd()方法内部的main方法。但number必须先声明后才能通过。

于 2013-11-07T20:08:34.627 回答