while (x == 1)
{
String[] riddles = new String[5] ;
riddles[0] = ("Hellowrite1") ;
riddles[1] = ("write2") ;
riddles[2] = ("write3") ;
riddles[3] = ("write4") ;
riddles[4] = ("write5") ;
String[] answers = new String [5] ;
answers[0] = ("1") ;
answers[1] = ("2") ;
answers[2] = ("3") ;
answers[3] = ("4") ;
answers[4] = ("5") ;
int riddlenumber;
riddlenumber = rand.nextInt (5);
System.out.println (riddles [riddlenumber]);
String useranswer;
useranswer = scan.next();
if
我将如何继续if语句? 我希望if语句将用户答案与答案字符串中的相应字符串进行比较。 基本上我想要它说,如果字符串useranswer = answer String#(riddlenumber,用随机函数选择的数字),那么system.out.println(“yay”); else --- -
答案 0 :(得分:2)
我对scan.next感到紧张,但要回答你的问题:
if( answers[riddlenumber].equals(useranswer) ) {
System.out.println("Yay, I guess");
}
else {
System.out.println("Not quite, try again...");
}
小点:我也可以说useranswer.equals(answers[riddlenumber])
。但我是偏执狂。我绝对肯定存储的答案不是空的。我不是绝对肯定useranswer不会。通过按上面的顺序执行,我避免感觉我需要先检查null;你可以安全地调用Object.equals(null),但你不能调用null.equals(Object)。
答案 1 :(得分:0)
在字符串上使用.equals。
if (answer[0].equals(userAnswer))
{
// Strings equal
}
请注意,==运算符仅检查字符串是否是同一个对象。如果字母相同则不一样。见 - https://stackoverflow.com/questions/767372/java-string-equals-versus