public class FlourPacker {
public static boolean canPack(int bigCount, int smallCount, int goal) {
if ((bigCount < 0 || smallCount < 0 || goal < 0))
return false;
if ((bigCount * 5) < goal)
return ((goal - (bigCount * 5)) <= smallCount);
else return ((goal % 5)<= smallCount);
}
public static void main(String []args){
System.out.println(canPack(3,0,11));
}
}
Así que en este problema bigCount
vale 5 y smallCount
vale 1, y se supone que debo tratar de obtener el número objetivo. No puedo pasar por encima (el objetivo) con el bigCount
pero no puedo con una smallCount
.
Pero mi pregunta es, ¿cómo es que en el último if
y else
declaración que no es necesario poner true
o false
para el cambio? cuando lo ejecuto (es decir. el principal método que he creado) me dice que true
a pesar de que nunca lo puse return true
en el código.
No es necesario especificar true
o false
específicamente. Si es así, entonces todos sus sentencias if tendrían que ser if (true)
o if (false)
.
Así que, en cambio, se escribe una expresión dentro de la sentencia if que se evalúa true
o false
(Tomando su ejemplo, if ((bigCount * 5) < goal)
será equivalente a en if (true)
o if (false)
después de conectar los valores de las variables).
Esta misma idea se aplica a las declaraciones de retorno ( return ((goal % 5)<= smallCount)
se convertirá return true
o return false
).