繁体   English   中英

为什么我的扫描仪每三行要求输入一次?

[英]Why does my scanner ask for input every three lines?

有谁知道为什么我的扫描仪要求每三行而不是每行输入一次? 如果您运行它,您将看到它先问这个问题,但随后又不问两行,然后它再次问这个问题。 我怎样才能每行问一个问题,更不用说将其存储在链接列表中了。

import java.util.Scanner;

public class StackCalc {

    public static StackLL stackll = new StackLL();

    public static void create() {

        String hold = new String();
        Scanner scanner = new Scanner(System.in);
        boolean running = true;
        while (true) {
        System.out.print("Enter number, math operation(+,-,*, or /), or Q to quit: ");
        hold = scanner.next();


        if (scanner.next().equals("Q") || scanner.next().equals("q")) {
            System.out.println(hold);
            break;
        }
    }

}

public static boolean checkInt(String s, int it){
    Scanner scan = new Scanner(s.trim());
    if(!scan.hasNextInt(it))
        return false;
    scan.nextInt(it);
    return !scan.hasNext();
    }

    public static void main(String args[]) {
        create();
    }
}

任何输入都会很棒。

这是因为您三次使用了Scanner.next()方法:

hold = scanner.next()

scanner.next().equals("Q")

scanner.next().equals("q")

相反,只需更改以下内容即可调用一次:

scanner.next().equals("Q") to hold.equals("Q")

scanner.next().equals(q")hold.equals("Q")

暂无
暂无

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

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