1

这是我试图调用的方法:

public static int seu03Menu(int option)
{
Scanner console = new Scanner(System.in);
System.out.println("*************************************************************");
System.out.println("Welcome to the 1323 System \nPlease choose an option from our menu\n");
System.out.println("1. Calculator");
System.out.println("2. Sentence Analysis");
System.out.println("3. Roll Dice");
System.out.println("4. Big Money");
System.out.println("\n9. Exit");
System.out.println("Option:");
option = console.nextInt();
return option;
}

这就是我试图调用该方法的方式:

public static void main (String[] args)
{
seu03Methods.seu03Menu(int option);
switch (option)
{
case 1:
    seu02.calculator();
    break;
case 2:
    seu03Methods.sentenceAnalysis();
    break;
case 3:
    seu03Methods.rollDice();
    break;
case 4:
    seu03Methods.bigMoney();
    break;
case 9:
    System.out.println("Exiting seu03...");
    break;
default:
    System.out.println("Invalid selection.");
    break;
}

我们还没有介绍如何调用不仅仅是“公共静态无效”的方法,所以我完全迷失了。我是 Java 新手,因此尝试使用 Google 和 Stack Overflow 搜索它无济于事。非常感谢任何正确方向的指针!

4

4 回答 4

0
public static int seu03Menu(){
    Scanner console = new Scanner(System.in);

    //All your options

    int option = console.nextInt();
    return option;
}

public static void main (String[] args){
  int option = seu03Methods.seu03Menu();
   switch( option ){
     //rest of your code
   }
}
于 2013-09-25T19:54:39.683 回答
0

进行如下更改:更改 main seu03Methods.seu03Menu(int option) 中的行;

int 选项=seu03Methods.seu03Menu;

并将方法 public static int seu03Menu(int option) 的定义更改为 public static int seu03Menu()

于 2013-09-25T19:54:51.493 回答
0
int option = seu03Methods.seu03Menu (0);

seu03Menu不应该带参数。在 Java 中,参数是传递方法的值;方法中传回给调用者的唯一值是返回值。seu03Menu不使用option传递给它的值。因此,它不应该带一个参数,而是应该看起来像

public static int seu03Menu()
{
... other stuff
int option = console.nextInt();
return option;
}

然后你会这样称呼它:

int option = seu03Methods.seu03Menu ();

如果seu03Menu不是您可以更改的东西,那么您必须将一些整数作为参数传递给它。但由于seu03Menu不使用您传递的值,您可以将其设为任何您想要的,例如0.

于 2013-09-25T19:51:25.720 回答
0

您调用的方法返回int

您需要在代码中初始化对方法值的引用,以获取方法的值。

您也不需要在方法的签名中添加参数,因为它会根据System输入流 ( System.in) 中扫描的结果生成结果。

你可以这样做:

  • 将方法签名更改为无参数:public static int seu03Menu()
  • 在您的方法中,更改option = console.nextInt();return console.nextInt();
  • 像这样调用你的方法:int theResult = seu03Methods.seu03Menu();

您的方法将从流中获取一个int类型化的值System.in,然后返回它。您的theResult方法范围变量将保存该值。

此外,我强烈建议:

  • 检查方法主体中的异常(如果您在查询后键入非整数值会发生什么?自己尝试)
  • 使用 Java 约定(类名 CamelCase)
于 2013-09-25T19:51:47.147 回答