对于以下代码,我必须在进入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");
}
}
}
答案 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()
方法时,它都会尝试读取输入,在您的示例中,您调用方法两次,这就是为什么在进入打印语句之前必须输入两个输入