If statement 使用if语句比较字符串和读取用户输入时遇到问题
我将一个字符串存储为“word”(来自另一个方法),并希望将其与存储为字符串“guess”的用户输入进行比较。程序会根据需要打印出来,并允许用户输入,但它不会读取看起来的输入。当输入正确的单词时,它仍会继续转到开关盒上的默认值,直到“i”值达到0,然后打印该盒。我知道这可能是一个简单的解决办法,但我已经花了一个晚上在这方面,并将感谢任何帮助If statement 使用if语句比较字符串和读取用户输入时遇到问题,if-statement,user-input,equals,If Statement,User Input,Equals,我将一个字符串存储为“word”(来自另一个方法),并希望将其与存储为字符串“guess”的用户输入进行比较。程序会根据需要打印出来,并允许用户输入,但它不会读取看起来的输入。当输入正确的单词时,它仍会继续转到开关盒上的默认值,直到“i”值达到0,然后打印该盒。我知道这可能是一个简单的解决办法,但我已经花了一个晚上在这方面,并将感谢任何帮助 String word = chooseRandomWord(words); int i = scrambledWord.length();
String word = chooseRandomWord(words);
int i = scrambledWord.length();
Scanner input = new Scanner(System.in);
System.out.println(i + " Points: What is your guess?");
String guess;
guess = input.next();
if (guess.equals(word)) {
System.out.println("Congragulitions! your score is " + i + " points");
System.out.println("the word was " + word);
System.exit(0);
}
if (!guess.equals(word)) {
while (i >= 0) {
switch (i) {
case 0:
System.out.println("sorry the word was " + word);
System.exit(0);
default:
i--;
System.out.println(i + " Points: what is your guess?");
guess = input.next();
}
}
}
else {
System.exit(0);
}
}
每次执行
guess = input.next();
在switch/case块中,没有检查是否输入了正确的单词。现在的情况是,即使输入了正确的单词,程序也会一直循环,直到变量i达到零,同时对收到的猜测不做任何处理。我明白你的意思。一旦检查了if,就不会再次检查它。因此,如果我将if语句改为“while”,应该可以正确处理这个问题?如果您建议将关键字“if”的出现次数改为“while”,那么不,这不会解决问题。有很多方法可以做到这一点;你可以简单地复制粘贴这个块
if(guess.equals(word)){System.out.println(“一致性!你的分数是“+i+”分”);System.out.println(“单词是“+word”);System.exit(0);}
到guess=input.next()之后开关/案例块中的代码>语句。