Problema sintaxis JAVA

Iniciado por crksergio, 21 Julio 2013, 01:52 AM

0 Miembros y 1 Visitante están viendo este tema.

crksergio

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.

BufferOverflow

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.

crksergio

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

BufferOverflow

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;
}

crksergio

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


nosedeque2

Interesante...

Enviado desde mi TOUCH97 usando Tapatalk 2

eleon

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í:

Código (java) [Seleccionar]
desc = valorPasaje*0.1;

crksergio

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í:

Código (java) [Seleccionar]
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.