如何在java方法中利用用户输入?



我有一些方法应该包含用户输入。我将扫描程序放在 main 方法中,但用户输入的值没有返回,也没有在代码中使用。如何将用户输入转换为方法可以访问的变量?

例如:

import java.util.Scanner;
public class example {
int variableOne;
int variableTwo;
int variableResultFromUserInput;
public int variableResultFromUserInput(int variableOne, int variableTwo) {
this.variableResultFromUserInput = variableOne * variableTwo;
return this.variableResultFromUserInput;
}
public static void main(String[]args) {
example myexample = new example();
Scanner keyboard = new Scanner(System.in);
System.out.println("What's your variable one? ");
variableOne = keyboard.nextInt(); //this is the variable that causes trouble
System.out.println("Whats your variable two?");
variableTwo = keyboard.hasNextInt(); //this is the second variable that causes trouble
System.out.println(myexample.variableResultFromUserInput); //this is also wrong
}
}

所以你的代码中有很多不正确的事情,所以我会列出问题:

  1. 您正在尝试同时使用实例myexample并设置variableOnevariableTwo的实例变量,将它们作为参数传递给实例方法。 这完全是多余的,没有任何用处,您已经可以从内部访问它们variableResultFromUserInput(). 使用this.variableOne访问它们(尽管this是可选的,但澄清了正在发生的事情)。
  2. 您需要从使用该实例mainstatic上下文中设置variableOnevariableTwo,AKA 使用myexample.variableOne = keyboard.nextInt()而不是variableOne = keyboard.nextInt()
  3. 您命名的变量与实例方法相同,并尝试读取该变量而不是调用该方法。 您应该使用带括号的myexample.variableResultFromUserInput()和正确的参数数量。 此变量可以完全删除,因为它目前是多余的。
  4. 您不遵循类名或变量名的 Java 命名约定。myexample应该是myExample的,类应该是Example的。
  5. variableTwo = keyboard.hasNextInt();应该keyboard.nextInt()而不是hasNextInt().hasNextInt只检查是否有可用的整数,但它实际上并没有读取整数,而是返回一个truefalseboolean

以下是进行的所有更改的代码:

public class Example {
int variableOne;
int variableTwo;
public int variableResultFromUserInput() {
return this.variableOne * this.variableTwo;
}
public static void main(String[]args) {
Example myExample = new Example();
Scanner keyboard = new Scanner(System.in);
System.out.println("What's your variable one? ");
myExample.variableOne = keyboard.nextInt(); //this is the variable that causes trouble
System.out.println("Whats your variable two?");
myExample.variableTwo = keyboard.nextInt(); //this is the second variable that causes trouble
System.out.println(myExample.variableResultFromUserInput()); //this is also wrong
}
}

在代码的最后一行,

System.out.println(myexample.variableResultFromUserInput);

您实际上并没有调用该方法。 因此,您的代码应有所不同:

System.out.println(myexample.variableResultFromUserInput(variableOne,variableTwo);

在方法"variableResultFromUserInput"中,您正在递归地调用该方法。 虽然有一种方法可以完成您正在做的事情,但我建议改为返回数学运算。这将如下所示:

public int variableResultFromUserInput(int variableOne, int variableTwo) {
return variableOne * variableTwo;}

让我知道这是如何工作的。

你在代码中犯了几个错误。

  • 你没有调用你的方法。取而代之的是,您打印了一个变量。
  • HasNextInt 用于检查您所在的行中是否有 int 读数。它只返回一个布尔值。
  • 您使用了误导性的方法名称和变量名称。

    import java.util.Scanner;
    public class Main {
    private static int variableOne;
    private static int variableTwo;
    int variableResultFromUserInput;
    public int variableResultFromUserInput(int variableOne, int variableTwo) {
    this.variableResultFromUserInput = variableOne * variableTwo;
    return this.variableResultFromUserInput;
    }
    public static void main(String[] args) {
    Main myexample = new Main();
    Scanner keyboard = new Scanner(System.in);
    System.out.println("What's your variable one? ");
    variableOne = keyboard.nextInt();
    System.out.println("Whats your variable two?");
    variableTwo = keyboard.nextInt();
    System.out.println(myexample.variableResultFromUserInput(variableOne,variableTwo));
    }
    

    }

您的代码有几个问题,请尝试此版本:

import java.util.Scanner;
public class Example {
public int variableResultFromUserInput(int variableOne, int variableTwo) {
return variableOne * variableTwo;
}
public static void main(String[]args) {
Example myexample = new Example();
Scanner keyboard = new Scanner(System.in);
System.out.println("What's your variable one? ");
int variableOne = keyboard.nextInt();
System.out.println("Whats your variable two?");
int variableTwo = keyboard.nextInt();
System.out.println(myexample.variableResultFromUserInput(variableOne, variableTwo));   }
}

您必须将此内容放在名为 Example.java 的文件中, 编译方式

javac Example.java 

并运行

java Example

相关内容

  • 没有找到相关文章

最新更新