繁体   English   中英

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

[英]How to utilize user input in java methods?

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

例如:

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的实例variableTwo并将它们作为参数传递给实例方法。 这是完全多余的,没有任何用处,您已经可以从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只检查是否有可用的整数,但它实际上并不读取整数,它返回一个boolean而不是truefalse

这是包含以下所有更改的代码:

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

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

  • 你没有调用你的方法。相反,你打印了一个变量。
  • 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.println(myexample.variableResultFromUserInput);

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM