Estoy ayudando a un amigo a generar un pequeño programa de compra de pasajes de bus para su Universidad. Yo no me manejo con Java, me manejo más con C.
El problema es que, en cierta parte del código, luego de asignar el valor del pasaje a la variable valorPasaje, hay que sacar el 10% de ese valor y dejarlo en la variable desc. Él tiene escrito esto, pero no sé si la sintaxis está correcta, ya que Netbeans da algún error.
public int valorPasaje;
public Pasajero[] pasajeroAsiento=new Pasajero[10];
public void asignaAsientoAPas(int asiento, String nom, boolean desc){
if(asiento<10)
{
pasajeroAsiento[asiento].creaPasajero(nom,desc);
(valorPasaje*0.1);
}
}//fin asignaAsientoAPas
Alguna idea? Saludos.
La variable "desc" es boolean y quieres guardar un int? además
(valorPasaje*0.1);
esa linea no hace nada y al usar
public void asignaAsientoAPas(int asiento, String nom, boolean desc)
estas recibiendo como parametro asiento, nom y desc, si quieres que la funcion te devuelva desc, deberias poner public int, y borrar eso de boolean desc. para asi retornar un numero entero, ya que ese "desc" no lo estas recibiendo, si no lo retornas.
entonces... así?
public int valorPasaje, desc;
public Pasajero[] pasajeroAsiento=new Pasajero[10];
public int asignaAsientoAPas(int asiento, String nom){
if(asiento<10)
{
pasajeroAsiento[asiento].creaPasajero(nom,desc);
(valorPasaje*0.1);
}
}//fin asignaAsientoAPas
Como dices que programas en C no deberias tener tantos problemas..., al hacer el metodo public int, es necesario poner el return al final del metodo con el valor de retorno osea
public int equisde(){
int x=0;
return x;
}
Entonces sólo habría que agregar... ??
public int valorPasaje, desc;
public Pasajero[] pasajeroAsiento=new Pasajero[10];
public int asignaAsientoAPas(int asiento, String nom){
if(asiento<10)
{
pasajeroAsiento[asiento].creaPasajero(nom,desc);
desc(valorPasaje*0.1);
}
return desc;
}//fin asignaAsientoAPas
Interesante...
Enviado desde mi TOUCH97 usando Tapatalk 2
Cita de: cracksergio en 21 Julio 2013, 20:12 PM
Entonces sólo habría que agregar... ??
public int valorPasaje, desc;
public Pasajero[] pasajeroAsiento=new Pasajero[10];
public int asignaAsientoAPas(int asiento, String nom){
if(asiento<10)
{
pasajeroAsiento[asiento].creaPasajero(nom,desc);
desc(valorPasaje*0.1);
}
return desc;
}//fin asignaAsientoAPas
No, lo que dice BufferOverflow es que al hacer la operación no estás guardando el resultado en ninguna variable, y eso que acabas de hacer no es una asignación. Sería así:
desc = valorPasaje*0.1;
Cita de: eleon en 23 Julio 2013, 17:38 PM
No, lo que dice BufferOverflow es que al hacer la operación no estás guardando el resultado en ninguna variable, y eso que acabas de hacer no es una asignación. Sería así:
desc = valorPasaje*0.1;
Ah perfecto, me imaginaba que era ése el problema, pero como mi amigo lo tenía de la manera que publiqué, pensé que era así, aunque me imaginaba que era como tú lo dijiste.