Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Mili17 en 02 de Abril 2014, 06:32
-
Hola!! Estoy haciendo el curso de java desde cero y me quede trabada en el tema de if else if... Me dice esto: Intenta compilar este código en una clase. Para ello declara la clase, declara las variables que intervienen,
inicialízalas en un constructor, e incorpora tres métodos que se correspondan con los tres ejemplos de
uso de if que hemos visto.
//if sencillo
if ( admitido == true) { System.out.println ("Se ha admitido el valor"); }
//if else sencillo
if ( admitido == true) {
System.out.println ("Se ha admitido el valor");
} else {
System.out.println ("No se ha admitido el valor");
}
//if con else if y cláusula final else
if (DesplazamientoX == 0 && DesplazamientoY == 1) {
System.out.println ("Se procede a bajar el personaje 1 posición");
}
else if (DesplazamientoX == 1 && DesplazamientoY == 0) {
System.out.println ("Se procede a mover el personaje 1 posición a la derecha"); }
else if (DesplazamientoX == -1 && DesplazamientoY == 0) {
System.out.println ("Se procede a mover el personaje 1 posición a la izquierda");
}
else {
System.out.println ("Los valores no son válidos");
Algo entiendo pero si me pueden explicar un poco como hacerlo por favor les agradezco muchisimo!!
-
Para ir por pasos, lo primero sería que identifiques las variables que intervienen en el código e identifiques de qué tipo son.
Por tanto haz una lista como esta:
variables que intervienten en if sencillo:
1. Nombre de variable: admitido, Tipo de la variable: boolean
variables que intervienen en if else sencillo: ...
variables que intervienen en if con else if y cláusula final else: ...
A partir de esa lista declara una clase que tenga como atributos esas variables, ese sería el primer paso.
Nota: para pegar el código en el editor del foro busca el botón #, púlsalo y pega el código entre las etiquetas [ code ] ... [ / code]
-
public class Variables {
boolean Admitido;
int DesplazamientoX;
int DesplazamientoY;
public Variables(){
Admitido=true;
DesplazamientoX= 0;
DesplazamientoY= 0;
}
public void setAdmitido (boolean Admitido){
//if sencillo
if ( Admitido == true) {
System.out.println ("Se ha admitido el valor"); }
//if else sencillo
if ( Admitido == true) {
System.out.println ("Se ha admitido el valor");
} else {System.out.println ("No se ha admitido el valor");}
}
public void setDesplazamientoX (int DesplazamientoX){
//if con else if y clausula final else
if (DesplazamientoX == 0) {
System.out.println ("Se procede a bajar el personaje 1 posición");
}
else if (DesplazamientoX == 1) {
System.out.println ("Se procede a mover el personaje 1 posición a la derecha"); }
else if (DesplazamientoX == -1) {
System.out.println ("Se procede a mover el personaje 1 posición a la izquierda");
}
else {
System.out.println ("Los valores no son válidos");
}
}
}
Gracias por responder. Me salio esto, el if y el if else creo estan bien pero para que me funcione el if else if tuve que eliminar el DesplazamientoY, no encuentro solucion ¿?¿?
-
Básicamente está correcto, pero te hago algunas observaciones:
1) Los nombres de los métodos deben responder a lo que hace el método. Si usas un nombre como setAdmitido se supone que el método va a ser para establecer el valor de Admitido (pero en este caso no es así, simplemente queremos probar a ejecutar un código. Por tanto un nombre de método más correcto sería mostrarMensajePorPantalla o simplemente pruebaIfSencillo)
2) Para incluir el DesplazamientoY el método tiene que recibir dos parámetros: el desplazamientoX y el desplazamientoY. Te adjunto el código a continuación, saludos
Código:
public class Variables {
boolean Admitido;
int DesplazamientoX;
int DesplazamientoY;
public Variables(){
Admitido=true;
DesplazamientoX= 0;
DesplazamientoY= 0;
}
public void pruebaIfSencillo (boolean admitido){
if ( admitido == true) { System.out.println ("Se ha admitido el valor"); }
}
public void pruebaIfElseSencillo (boolean admitido){
//if else sencillo
if ( admitido == true) {
System.out.println ("Se ha admitido el valor");
} else {System.out.println ("No se ha admitido el valor");}
}
public void pruebaIfConElseIf (int DesplazamientoX, int DesplazamientoY){
//if con else if y clausula final else
if (DesplazamientoX == 0 && DesplazamientoY == 1) {
System.out.println ("Se procede a bajar el personaje 1 posición");
}
else if (DesplazamientoX == 1 && DesplazamientoY == 0) {
System.out.println ("Se procede a mover el personaje 1 posición a la derecha"); }
else if (DesplazamientoX == -1 && DesplazamientoY == 0) {
System.out.println ("Se procede a mover el personaje 1 posición a la izquierda");
}
else {
System.out.println ("Los valores no son válidos");
}
}
}
También puedes plantearlo sin necesidad de que los métodos reciban parámetros, sino considerando que se usan los atributos de la clase. En ese caso el código sería:
public class Variables {
boolean admitido;
int DesplazamientoX;
int DesplazamientoY;
public Variables(){
admitido=true;
DesplazamientoX= 0;
DesplazamientoY= 0;
}
public void pruebaIfSencillo (){
if ( admitido == true) { System.out.println ("Se ha admitido el valor"); }
}
public void pruebaIfElseSencillo (){
//if else sencillo
if ( admitido == true) {
System.out.println ("Se ha admitido el valor");
} else {System.out.println ("No se ha admitido el valor");}
}
public void pruebaIfConElseIf (){
//if con else if y clausula final else
if (DesplazamientoX == 0 && DesplazamientoY == 1) {
System.out.println ("Se procede a bajar el personaje 1 posición");
}
else if (DesplazamientoX == 1 && DesplazamientoY == 0) {
System.out.println ("Se procede a mover el personaje 1 posición a la derecha"); }
else if (DesplazamientoX == -1 && DesplazamientoY == 0) {
System.out.println ("Se procede a mover el personaje 1 posición a la izquierda");
}
else {
System.out.println ("Los valores no son válidos");
}
}
}
En este último código sería adecuado añadir los métodos setAdmitido, setDesplazamientoX y setDesplazamientoY para poder establecer valores para esos atributos.
-
Me ayudo mucho tu respuesta. Gracias!!