if语句之前的两个输入

时间:2017-07-03 09:01:45

标签: java java.util.scanner

对于以下代码,我必须在进入if语句之前输入2个输入。 Java对我来说很安静,所以我不明白我做错了什么。任何人都可以帮我解决这个问题吗?

package oefenen;

import java.util.Scanner;

public class oefenen {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        String name;
        System.out.println("Adin ne?");
        // TODO Auto-generated method stub
        name = scan.next();

            if (scan.next().equals("samet")); {
                System.out.println("Merhaba memetin oglu");
            }

    }

}

3 个答案:

答案 0 :(得分:4)

您忽略了name

的值

由于末尾用分号,你的if语句实际上也被忽略了

试试这个

 if (name.equals("samet")) { // remove semicolon 

答案 1 :(得分:2)

scan.next()每次调用时都会等待新输入。

尝试使用name.equals("samet")代替scan.next().equals("samet")

答案 2 :(得分:0)

来自Scanner.next()doc:

  

查找并返回此扫描仪的下一个完整令牌。   完整的标记前面跟着匹配的输入   分隔符模式。此方法可能在等待输入时阻塞   即使先前调用hasNext返回,也要进行扫描   true

每次调用next()方法时,它都会尝试读取输入,在您的示例中,您调用方法两次,这就是为什么在进入打印语句之前必须输入两个输入