Java - duda sobre el return

   
Vista:

duda sobre el return

Publicado por Javier (2 intervenciones) el 20/07/2016 04:00:48
A la hora de intentar desarrollar un método tengo problemas con el return. La verdad no se donde esta el error. Os dejo abajo el metodo que he desarrollado por si me podéis decir cual es el error.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/**
 * Devuelve la siguiente carta que siguea esta en orden, o
 * null si no tiene una siguiente (si esta carta es el REY 
 * DE BASTOS). El orden a tener en cuenta es OROS, COPAS,
 * ESPADAS y BASTOS, y para cada palo en orden creciente de
 * su valor.
 */
public Carta siguiente() {//Posible duda sobre el return.
		if(this.valor<7){
		this.valor++;
		return new Carta(this.valor,this.palo);
 
	}else   if(this.valor==7){
		this.valor=10;
		return new Carta(this.valor,this.palo);
 
	}else  if(this.valor>=10&&this.valor<12){
		this.valor++;
		return new Carta(this.valor,this.palo);
	}else  if(this.valor==12){
		if(this.palo<3){
			this.valor=1;
			this.palo++;
			return new Carta(this.valor,this.palo);
		}else{
			return null;
		}
	}
}
 
 
/**
 * }Devue}lve true si y solo si esta carta mata a otraCarta 
 * cuando el triunfo es el especificado por el valor del 
 * parámetro triunfo, de acuerdo con la siguiente codificación: 
 * OROS=0, COPAS=1, ESPADAS=2, BASTOS=3.
 * Considerando que esta carta es mano (lanza primero), solo
 * sera superada por la otra carta si esta última es del mismo
 * palo y tiene puntuación superior o es triunfo (siendo que
 * no lo era esta carta).
 */
public boolean puedeMatar(Carta otraCarta, int triunfo) {
	if(this.palo!=otraCarta.palo()&&otraCarta.palo!=triunfo){
		return true;
	}else if(this.palo==otraCarta.palo){
		if(puntuacion()>otraCarta.puntuacion()){
			return true;
		}else if(puntuacion()<otraCarta.puntuacion()){
			return false;
		}else if(puntuacion()==otraCarta.puntuacion()){
			if(this.valor>otraCarta.valor()){
				return true;
			}else{
				return false;
			}
		}
	}else if(this.palo!=otraCarta.palo()&&otraCarta.palo==triunfo){
		return false;
	}
}
En los dos metodos tengo el mismo fallo que creo que es que no me detecta el return.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

duda sobre el return

Publicado por juanki (95 intervenciones) el 20/07/2016 10:33:43
Hola

Lo que veo es que todos los return están dentro de algún if. ¿Qué pasa si no se cumplen las condiciones y no se entra en los if? Pues que no retornas nada. Supongo que ese es el error que te marca.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

duda sobre el return

Publicado por Carlos Castro (39 intervenciones) el 20/07/2016 23:33:48
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public boolean puedeMatar(Carta otraCarta, int triunfo) {
boolean valor;
	if(this.palo!=otraCarta.palo()&&otraCarta.palo!=triunfo){
		valor= true;
	}else if(this.palo==otraCarta.palo){
		if(puntuacion()>otraCarta.puntuacion()){
			valor= true;
		}else if(puntuacion()<otraCarta.puntuacion()){
		valor= true;
		}else if(puntuacion()==otraCarta.puntuacion()){
			if(this.valor>otraCarta.valor()){
			valor= true;
			}else{
				valor= true;
			}
		}
	}else if(this.palo!=otraCarta.palo()&&otraCarta.palo==triunfo){
		valor= true;
	}
return valor;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

duda sobre el return

Publicado por Javier (2 intervenciones) el 21/07/2016 00:38:39
Muchas gracias a los dos
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sandro

duda sobre el return

Publicado por Sandro (36 intervenciones) el 22/07/2016 00:53:32
tienes que inicializar con false primero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

duda sobre el return

Publicado por J. Carlos UTTT (16 intervenciones) el 12/08/2016 22:35:38
Hola que tal, pues te falta falta retornar un valor que sea igual al de tu metodo!!!

Te recomiendo que crees una variable del tipo del metodo y esa variable la retornes!!


public bool bandera = true;

return bandera;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar