扫描仪的sc.next()让我输入值两次

时间:2017-11-06 05:23:42

标签: java java.util.scanner

我正在使用扫描仪为我的应用程序输入输入。我的代码如下:

Scanner sc = new Scanner(System.in);
System.out.println("Do you want to give user input :YES/NO")
if(sc.next().equals("YES")){
   System.out.println("which input? student or teacher name")
   if(sc.next().equals("student")){
      system.out.println("do something");
   }
   if(sc.next().equals("teacher")){
      system.out.println("do something");
   }
}

}else
{
   system.out.println("program will run itseld");
}

代码工作正常,但它要求输入两次。假设如果我进入学生,它将不会继续,但当我第二次进入学生时,我的程序开始工作。我还在stackoverflow上看到了一些类似的问题并尝试了他们的解决方案,但我无法解决这个问题。请帮忙。

2 个答案:

答案 0 :(得分:3)

sc.next()每次抓取一个输入。将其存储到变量中,并在比较时使用该变量。

String input = sc.next();
if(input.equals("YES")) {
    // logic here
}

答案 1 :(得分:0)

尝试这样的事情

import java.io.*;
import java.util.*;

class SumsInLoopTester {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Do you want to give user input :YES/NO");
        String input = sc.next();
        if (input.equals("YES")) {
            System.out.println("which input? student or teacher name");
            String input2 = sc.next();
            if (input2.equals("student")) {
                System.out.println("do something");
            } else if (input2.equals("teacher")) {
                System.out.println("do something");
            }
        } else {
            System.out.println("program will run itseld");
        }
    }
}