Curso de Java
Desde cero hasta conexiones con bases de datos MySQL
Curso de Java: Contenido
Iniciación: página 23
[ 20, 21, 22, 23, 24, 25, 26 ]
Iniciación al lenguaje Java
Estructuras de control
if.. else anidado
Aunque hemos avanzado, el programa sigue teniendo problemas. Si el usuario no escribe el nombre pero oprime el botón aceptar, la cadena mostrada será Hola solamente; si queremos que aparezca otro mensaje para este caso, hay más de una solución; una de ellas es anidar un if…else dentro del que ya hicimos:
DemoIfElseAnidado.java
package cursojava.demos; //La encapsulamos en un lugar para todos los demos
import javax.swing.JOptionPane; //Importamos la clase JOptionPane
public class DemoIfElseAnidado{
String nombre; //Este será la información para el I/O
public DemoIfElseAnidado() {
//El constructor llama a sus métodos
pideNombre();
muestraSaludo();
}
/*La palabra reservada null del primer atributo en los dos métodos
*de JOptionPane es porque, por lo común, esta clase es llamada desde una ventana
* que es su propietario como no tenemos tal ventana, lo indicamos así
*/
private void pideNombre(){
nombre=JOptionPane.showInputDialog(null,"Escribe tu nombre");//Pide el nombre
}
private void muestraSaludo(){
//Inicio de la estructura de control if…else
if(nombre==null) {
JOptionPane.showMessageDialog(null,"Oprimiste cancelar");//Mensaje por la cancelación
}else
if(nombre.equals("")){//Las cadenas no se comparan con == sino con el método equals()
JOptionPane.showMessageDialog(null,"Oprimiste aceptar sin escribir tu nombre");
}else{ {
JOptionPane.showMessageDialog(null,"Hola "+nombre);//Saluda en pantalla
}
}
}
public static void main(String[] args) {
new DemoIfElseAnidado();
}
}
En este caso, el programa podrá enviar tres respuestas distintas:
1. Mandar el saludo
2. Indicar que se oprimió cancelar
3. Indicar que no se escribió el nombre