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

如何在java方法中利用用户输入?,java,methods,user-input,Java,Methods,User Input,我有一些应该包含用户输入的方法。我将scanner放在main方法中,但是用户输入的值不会返回,也不会在代码中使用。如何将用户输入转换为可由方法访问的变量 例如: import java.util.Scanner; public class example { int variableOne; int variableTwo; int variableResultFromUserInput; public int variableResultFromUserInput(int variabl

我有一些应该包含用户输入的方法。我将scanner放在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
}

}

您在代码中犯了几个错误

你没有调用你的方法,而是打印了一个变量。 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));

}
}


在代码的最后一行

System.out.printlnmyexample.variableResultFromUserInput

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

System.out.PrintlMyExample.variableResultFromUserInputvariableOne,variableTwo;

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

public int variableResultFromUserInput(int variableOne, int variableTwo) {
return 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

因此,您的代码中有很多不正确的地方,因此我将列出这些问题:

您正在尝试使用实例myexample并设置variableOne和variable2的实例变量,并将它们作为参数传递给实例方法。这是完全冗余的,没有任何用途,您已经可以从variableResultFromUserInput中访问它们。使用this.variableOne访问它们,虽然this是可选的,但说明了发生了什么。 您需要使用实例从main的静态上下文中设置variableOne和variable2,即使用myexample.variableOne=keyboard.nextInt而不是variableOne=keyboard.nextInt。 您将一个变量命名为与实例方法相同的变量,并尝试读取该变量,而不是调用该方法。您应该使用带括号的myexample.variableResultFromUserInput以及相应的正确参数数。此变量可以完全删除,因为它当前是冗余的。 类名或变量名不遵循Java命名约定。myexample应该是myexample,类应该是Example。 variableTwo=keyboard.hasNextInt;应为keyboard.nextInt而不是hasNextInt。hasNextInt只检查是否有可用的整数,但它实际上并不读取整数,而是返回一个布尔值,该值为true或false。 下面是代码,其中包含以下所有更改:

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
    }
}