Я пытаюсь взять пользовательский камень, бумагу, выбор ножниц (который вводится как r, p или s), но когда я пытаюсь меняйте и называйте это, это дает мне ошибку.Строка, отказывающаяся заявляться, когда она уже была начата и назначена
Вот мой код:
package labs10;
import java.util.Scanner;
import static java.lang.System.*;
public class RPSRunner
{
public static void main(String args[])
{
Scanner kb = new Scanner(System.in);
String full;
String response;
String player = "";
out.print("Select [R,P,S] :: ");
response = kb.next();
if (response.equals("R")) {
full = "Rock";
} else if (response.equals("P")) {
full = "Paper";
} else if (response.equals("S")) {
full = "Scissors";
}
out.println("Player chooses " + full);
RockPaperScissors game = new RockPaperScissors();
game.setPlayers(response);
game.determineWinner();
out.println(game);
}
}
и моя ошибка
Exception in thread "main" java.lang.Error: Unresolved compilation problem: The local variable full may not have been initialized at labs10.RPSRunner.main(RPSRunner.java:25)
Я попытался сделать инициализацию его строковым ответом = "R"; , поэтому пользователь мог бы его изменить, но это не исправило. Не могли бы вы рассказать? – Grant
@Grant Как? Простое изменение 'String full;' to 'String full = null;' устранит вашу ошибку компиляции. Значение по умолчанию для 'response' не помогает, так как позже использование может ввести недопустимое значение. Это переменная 'full', которая должна иметь значение по умолчанию. – Eran
Спасибо, извините, я не понимал вначале! – Grant