Buenas, César.
He conseguido hacer algo, pero no esta del todo bien el código.
Me ha quedado así:
import java.util.Scanner;
public class Test{
public static void main(String []args){
System.out.println("Los cantantes famosos en la lista son:");
ListaCantantesFamosos listacantantes = new ListaCantantesFamosos();
listacantantes.cantantesEnLaLista();
System.out.print("Introduzca otro cantante:");
String entradaTeclado = "";
Scanner entradaScaner = new Scanner(System.in);
entradaTeclado = entradaScaner.nextLine();
if(entradaTeclado.equals("")==false){
listacantantes.addNombre(entradaTeclado);
listacantantes.cantantesEnLaLista();}
String entradaDesicion = "";
System.out.print("Deseas entrar más cantante: Sí/No: ");
entradaDesicion = entradaScaner.nextLine();
if(entradaDesicion.equals("No")==false || entradaDesicion.equals("no")==false || entradaDesicion.equals("Sí")==false || entradaDesicion.equals("sí")==false || entradaDesicion.equals("Si")==false || entradaDesicion.equals("si")==false){
while(entradaDesicion.equals("Sí")==false){ //|| entradaDesicion.equals("No") == false || entradaDesicion.equals("no") == false){
System.out.print("Deseas entrar más cantante: Sí/No: ");
entradaDesicion = entradaScaner.nextLine();
}
}
if(entradaDesicion.equals("No") || entradaDesicion.equals("no") ){
System.out.println("Gracias por utilizar nuestro programa.");
}
while(entradaDesicion.equals("Sí") || entradaDesicion.equals("sí") || entradaDesicion.equals("Si") || entradaDesicion.equals("si") ){
if(entradaDesicion.equals("Sí") || entradaDesicion.equals("Si") || entradaDesicion.equals("sí")|| entradaDesicion.equals("si"))
System.out.print("Introduzca otro cantante:");
entradaTeclado = entradaScaner.nextLine();
if(entradaTeclado.equals("")==false){
listacantantes.addNombre(entradaTeclado);
listacantantes.cantantesEnLaLista();}
System.out.print("Deseas entrar más cantante: Sí/No: ");
entradaDesicion = entradaScaner.nextLine();
while(entradaDesicion.equals("")){
System.out.print("Deseas entrar más cantante: Sí/No:");
entradaDesicion = entradaScaner.nextLine();
}
if(entradaDesicion.equals("No") || entradaDesicion.equals("no") ){
System.out.println("Gracias por utilizar nuestro programa.");
}
}
}
}
Ya verás, que cumpliéndose la primera condiciones, si
if(entradaDesicion.equals("No")==false || entradaDesicion.equals("no")==false || entradaDesicion.equals("Sí")==false || entradaDesicion.equals("sí")==false || entradaDesicion.equals("Si")==false || entradaDesicion.equals("si")==false)
Entramos en un bucle infinito. Sólo se puede salir de él respondiendo a la pregutna con un "Sí".
No entiendo por qué no me deja poner más de una condición en el bucle while. Es decir, que quede así:
while(entradaDesicion.equals("No")==false || entradaDesicion.equals("no")==false || entradaDesicion.equals("Sí")==false || entradaDesicion.equals("sí")==false || entradaDesicion.equals("Si")==false || entradaDesicion.equals("si")==false){
//Instrucciones para cumplir
}
Gracias