Java: Para interiores declaración de Do declaración?
Pregunta
Esto está relacionado con mi otra pregunta aquí
public void equipWep(String weapontoequip){
if(items.isEmpty() && weapons.isEmpty()){
System.out.println("You are not carrying anything.");
} else {
boolean weaponcheck_finished = false;
do {
for (String s : weapons) {
if (s.contains(weapontoequip)) {
System.out.println("You equip " + s + ".");
weaponcheck_finished = true;
} else {
System.out.println("You cannot equip \"" + weapontoequip + "\", or you do not have it.");
weaponcheck_finished = true;
}
}
}while(weaponcheck_finished == false);
}
}
Cuando se ejecuta este método, sistema no imprime nada. A través de una serie de pruebas de impresión, he determinado que va dentro del bucle do-while
. No estoy seguro de si va en el interior del bucle for
sin embargo.
Solución
Sus artículos podría contener algo, pero sus armas puede estar vacío. Su código no parece hacer nada en este caso.
Otros consejos
Inicio desde aquí en su lugar:
public void equipWithWeapon(String weapon) {
if (items.isEmpty() && weapons.isEmpty()) {
System.out.println("You are not carrying anything.");
return;
}
String foundWeapon = findWeapon(weapon);
if (foundWeapon == null) {
System.out.println("You cannot equip \"" + weapon + "\", or you do not have it.");
}
System.out.println("You equip " + foundWeapon + ".");
}
private String findWeapon(String weapon) {
for (String s : weapons) {
if (s.contains(weapon)) {
return s;
}
}
return null;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow