Мне нужно создать программу, которая запрашивает у пользователя строковое значение и возвращает строковое значение «камень», «бумага» или «ножницы», если ввод был «r», «p» или «s». Если пользователь набрал что-то другое.
package loopsGamesProject;
import java.util.Scanner;
public class LoopsGamesProject_RockPaperScissors {
public static void main(String[] args) {
String in="-";
Scanner input= new Scanner(System.in);
System.out.print("Enter 'r' for rock, and 'p' for paper,'s' for scissors:");
in=input.next();
if(in=="r"||in=="p"||in=="s"){
if(in=="r"){
in="Rock";
}
if(in=="p"){
in="Paper";
}
if(in=="s"){
in="Scissors";
}
while(in!="r"||in!="p"||in!="s") {
System.out.print("Enter 'r' for rock, and 'p' for paper,'s' for scissors:");
in=input.next();
if(in=="r"||in=="p"||in=="s"){
if(in=="r"){
in="Rock";
}
if(in=="p"){
in="Paper";
}
if(in=="s"){
in="Scissors";
}
}
}
input.close();
System.out.print(in);
}
}
}
Проблема в том, что он запросит переменную, но завершится сам. Я попытался добавить переменную "out". Когда я попытался сделать это с помощью цикла do while, он продолжал запрашивать ввод, но ничего не возвращал. Я не могу найти проблему.
Используйте отладчик, чтобы просмотреть код, чтобы увидеть, где он работает не так, как вы ожидаете.
Я обнаружил, что скобка для первого оператора if была неуместна. Я исправил это, и отладчик не может найти проблем. Теперь он продолжает повторять вопрос вечно.
Отладчик позволяет выполнять код построчно по мере его выполнения. Это точно скажет вам, почему он продолжает повторять вопрос вечно. Попробуйте снова.