Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从用户输入中获取答案并传递给另一个类_Java_String_Class_User Input - Fatal编程技术网

Java 从用户输入中获取答案并传递给另一个类

Java 从用户输入中获取答案并传递给另一个类,java,string,class,user-input,Java,String,Class,User Input,我试图接受用户输入,然后将该输入传递给另一个类,以便执行一系列检查。在这种情况下,要将答案与用户可以键入的选项列表进行比较,并且如果他们键入选项,则将执行操作。我从一个菜单选项开始,但我在控制台中键入“menu”,什么也没有发生……程序只是在没有错误的情况下终止 在调试中,在“return;”处值“menu”存储在变量“answer”中。在这之后的下一步,我得到了“Thread[main](Suspended)和这个堆栈跟踪消息: Thread.exit()行:不可用[局部变量不可用] 如何从m

我试图接受用户输入,然后将该输入传递给另一个类,以便执行一系列检查。在这种情况下,要将答案与用户可以键入的选项列表进行比较,并且如果他们键入选项,则将执行操作。我从一个菜单选项开始,但我在控制台中键入“menu”,什么也没有发生……程序只是在没有错误的情况下终止

在调试中,在“return;”处值“menu”存储在变量“answer”中。在这之后的下一步,我得到了“Thread[main](Suspended)和这个堆栈跟踪消息:

Thread.exit()行:不可用[局部变量不可用]

如何从main()在Exec类中识别答案

这是我的
main()

这是我尝试执行操作的Exec类:

package program2;

public class Exec {
    String newAnswer = Calculator.answer;

    public Exec (String answer){        
        if (newAnswer.equals("menu")){
            menu();
        }   
    } 
    public static void menu(){
        System.out.printf("%-30s %-30s %-30s%n", "Enter value: enter", "Duplicate: dup" "Exp:exp");        
    }
}  
我也尝试过类似的简单方法(得到了相同的回答):


对于初学者,您需要从main实例化一个Exec实例,并将其传递到Exec。。。 i、 e:

从那以后,它应该会起作用。它说没有更多的变量可用,因为您的程序在返回语句处结束

但是,在Exec类中也有问题。。。。newAnswer未分配,您正在测试它是否相等。。。您将得到另一个错误

编辑:


ugg。。更糟糕的是。。。不要重新声明答案,请使用此。答案。。。您正在声明一个新的局部变量

您没有在任何地方使用
Exec
。你预计会发生什么?我正在分配计算器。答案到新答案;我希望newAnswer能取计算器的值。回答…谢谢。我知道这对你和其他人来说是很基本的,但我仍在努力学习。非常感谢你的时间和帮助:)没问题,克里斯,每个人都去过,我上这个网站是因为它帮助我通过帮助别人来学习:)不要担心问问题。。。我的“uggh…”是因为我一直在编辑并发现更多的错误,哈哈,如果我能一下子看到它们,那就太好了呵呵。
package program2;

public class Exec {
    String newAnswer = Calculator.answer;

    public Exec (String answer){        
        if (newAnswer.equals("menu")){
            menu();
        }   
    } 
    public static void menu(){
        System.out.printf("%-30s %-30s %-30s%n", "Enter value: enter", "Duplicate: dup" "Exp:exp");        
    }
}  
package program2;
public class Calculator {
    public static String answer;

    public static void main(String[] args) {
        answer = "menu";
        return;
    }
}
String answer = sc.nextLine();
Exec ex = new Exec(answer);
return;