Цикл while будет продолжаться до тех пор, пока temp имеет значение true.Во вложенном операторе if мы устанавливаем temp как false, что выходит из цикла.
Что касается playerPick : переменная объявляется вне цикла, поэтому она должна быть доступна в любом месте функции, которая находится ниже декларации (код читается сверху вниз).Если вы пытаетесь получить доступ к playerPick из другого метода, вам нужно объявить переменную в суперклассе.
Примечание: я также очистил ваше выражение if, чтобы сделать его более читабельным,
Надеюсь, это поможет!
System.out.println("Please choose either Applaro, Svartra, Tunholmen, or Godafton.");
boolean temp = true;
String playerPick = "";
while (temp) {
playerPick = console.next();
if (playerPick.equals("Applaro") || playerPick.equals("Svartra") || playerPick.equals("Tunholmen") || playerPick.equals("Godafton")) {
System.out.println("You have picked " + playerPick);
temp = false;
}
else
System.out.println("Please enter a valid input.");
}