Java使用来自其他方法的用户输入

Java使用来自其他方法的用户输入,java,methods,Java,Methods,我访问了其他类似的问题,但没有找到适合我的问题 减少代码行,而不是将输入过程复制粘贴到if-else语句中。我创建了一个UInputs()将获取用户输入的方法。因此,我可以随时调用它,但我不能在UInputs()中使用用户输入的值 您可以创建某种包装器类 class MyNumberWrapper { double num1; double num2; } 然后你会像这样 public static MyNumberWrapper UInputs(){ MyNumberWr

我访问了其他类似的问题,但没有找到适合我的问题

减少代码行,而不是将输入过程复制粘贴到if-else语句中。我创建了一个
UInputs()将获取用户输入的方法。因此,我可以随时调用它,但我不能在
UInputs()
中使用用户输入的值


您可以创建某种包装器类

class MyNumberWrapper {

  double num1;
  double num2;

}
然后你会像这样

public static MyNumberWrapper UInputs(){
    MyNumberWrapper wrapper = new MyNumberWrapper();
    Scanner scan = new Scanner(System.in);
    System.out.print("1st Number: ");
    wrapper.num1 = scan.nextDouble();
    System.out.print("2nd Number: ");
    wrapper.num2 = scan.nextDouble();
    return wrapper;
}

然后在主函数中,您可以使用
MyNumberRapper wrapper=UInput()
并使用
wrapper.num1
wrapper.num2
等访问所有变量,这不是我能想到的最佳答案,但肯定有一些改进可以使代码更易于消化

我将
UInputs
更改为一个名为
calculate()
的方法。它现在将选择的函数作为输入,然后要求用户输入5个数字。然后将该函数应用于5个数字。执行此计算的另一种方法是向用户请求一个数字,返回它,然后依次将函数应用于返回的数字以获得结果。。。这样会更好

import java.util.Scanner;
公共类计算器{
专用静态最终扫描仪扫描=新扫描仪(System.in);
/**
*我最初的想法是,UInputs应该返回值
*这些应该是累积的总和。
*没有必要将输入保存在内存中,因为
*一旦它们被消耗掉,就不再需要它们了。
*/
公共静态双重计算(char函数应用){
双[]输入=新双[5];
//适用于最多20个输入的作品-为了简单起见,可以在这里打印“数字i:”。

对于(int i=0;iyour num变量是局部变量。您可以在类级别将它们声明为实例(或静态)变量对于一个答案,你至少应该解释问题是什么。问题下的第一条注释解释问题是什么-局部变量是的,我知道,这是我的注释。我的意思是:解释为什么你在代码中所做的更改可以解决问题,作为你答案的一部分。仅仅提供复制粘贴的代码而没有一个合理的解释是不行的这是最好的。我才意识到我还有很长的路要走。哈哈
public static MyNumberWrapper UInputs(){
    MyNumberWrapper wrapper = new MyNumberWrapper();
    Scanner scan = new Scanner(System.in);
    System.out.print("1st Number: ");
    wrapper.num1 = scan.nextDouble();
    System.out.print("2nd Number: ");
    wrapper.num2 = scan.nextDouble();
    return wrapper;
}