扫描程序变量未注册为字符串

时间:2017-04-16 01:18:30

标签: java string java.util.scanner

我正在制作一个java计算器,以找出蔗糖水溶液(化学物质)的密度和粘度,并决定更进一步。我使用了Micheal Flanagan的Sucrose Java库,它是:

import flanagan.physprop.Sucrose;
代码中的

。我想要一种方法来继续输入方程式,而不必继续按压反复运行,所以我创建了

public static void restart() {
    System.out.println("would you like to calculate another solution?(y/n)");
    String yn = new String(input.nextLine());
    String y = "y";
    String n = "n";
    System.out.println(yn);
    if (yn == y){
        tf = true;
    }
    else {
        if (yn == n) {
            tf = false;
        }
        else {
        System.out.println("ERROR: Please print 'y' or 'n'");
        restart();
        }
    }
    if (tf == true) {
        calc();
    }
    if (tf == false) {
        fin();
    }
}

我正在使用一个名为'import'的扫描程序,它在前面一行中定义。

static Scanner input = new Scanner(System.in);

所以,无论如何,正在发生的事情是代码没有重新启动,而是触发错误。我已经尝试通过将读数定义为字符串并为“y”和“n”创建变量来修复它。我认为“yn”没有正确地注册为字符串,也无法想到其他任何内容。

flanagan.jar可以找到here

2 个答案:

答案 0 :(得分:0)

好吧,我通过切换到数字得到了答案。

public static void restart() {
    System.out.println("would you like to calculate another solution?(1 for yes/0 for no)");
    int yn = input.nextInt();
    int y = 1;
    int n = 0;
    if (yn == y){
        calculator();
    }
    if (yn == n) {
        fin();
    }
}

答案 1 :(得分:0)

你需要做的就是使用无限循环:

while(true) {

//code you want to repeat...

}