Я новичок здесь, поэтому я не уверен, нормально ли иметь 2 вопроса в одном сообщении, поэтому, если я не должен просто сказать мне (красиво!), и я его изменю на один вопрос здесь и начать другое сообщение в другом месте.Строки визуально идентичны, но не совпадают; list iterator exception
Первая проблема:
Ниже в строках 5-8 я имею в виду две строки, которые мне нужно сравнить, чтобы увидеть, если они одинаковы. Я использую метод getUserInput()
, чтобы получить ответ от пользователя на терминале, а затем у меня есть его, и напечатайте обе строки, чтобы я мог визуально осмотреть их, и они подходят к тому же. Тем не менее, раздел if
, который должен запускаться, когда они такие же, никогда не запускается, а затем раздел else
всегда делает это.
Вторая проблема:
В else
разделе прямо ниже, когда здоровье currentChump
«s сводится к < 1
, я получаю блок исключений, которые я никогда раньше не видел и не знаю, что делать делать около.
Вот мой код, а затем ниже я вставит исключение:
for (Chump currentChump : chumpArray) {
System.out.println(" ");
String playerChoice = helper.getUserInput(
"Type the name of the Weapon that you wish to use.");
System.out.println(playerChoice);
System.out.println(currentChump.getWeakness().toLowerCase());
if (currentChump.getWeakness().toLowerCase() == playerChoice) {
chumpArray.remove(currentChump);
} // END IF
else {
while (PlayerIsAlive && currentChump.getHealth() > 0) {
int damage = (int) Math.floor((Math.random() * 6) + 1);
System.out.println(currentChump.getName() + " has "
+ currentChump.getHealth() + "health remaining.");
currentChump.setHealth(currentChump.getHealth() - damage);
System.out.println("You hit the enemy for "
+ damage + " points of damage.");
System.out.println(currentChump.getName() + " has "
+ currentChump.getHealth() + " health remaining.");
System.out.println(" ");
if (currentChump.getHealth() < 1) {
chumpArray.remove(currentChump);
} // END IF
else {
int damage2 = (int) Math.floor((Math.random() * 4) + 1);
player.setHealth(player.getHealth() - damage2);
if (player.getHealth() < 1) {
PlayerIsAlive = false;
} // END IF
} // END WHILE
} // END ELSE
} // END ELSE
} // END FOR
исключение:
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at ArenaGameCopy.startPlaying(ArenaGameCopy.java:87)
at ArenaGameCopy.main(ArenaGameCopy.java:168)
Я так счастлив, что кто-то считает меня замечательным. :) –
В общем, вы должны [задавать отдельные вопросы отдельно] (http://meta.stackexchange.com/q/39223/193053). – Jeffrey
Спасибо, Джеффри, я сделаю это в будущем. –