Foro de elhacker.net

Programación => Java => Mensaje iniciado por: crksergio en 21 Julio 2013, 01:52 am



Título: Problema sintaxis JAVA
Publicado por: crksergio en 21 Julio 2013, 01:52 am
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.

Código:
 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.


Título: Re: Problema sintaxis JAVA
Publicado por: BufferOverflow en 21 Julio 2013, 02:15 am
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.


Título: Re: Problema sintaxis JAVA
Publicado por: crksergio en 21 Julio 2013, 02:18 am
entonces... así?

Código:
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


Título: Re: Problema sintaxis JAVA
Publicado por: BufferOverflow en 21 Julio 2013, 02:24 am
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;
}


Título: Re: Problema sintaxis JAVA
Publicado por: crksergio en 21 Julio 2013, 20:12 pm
Entonces sólo habría que agregar... ??

Código:
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


Título: Re:
Publicado por: nosedeque2 en 23 Julio 2013, 02:09 am
Interesante...

Enviado desde mi TOUCH97 usando Tapatalk 2


Título: Re: Problema sintaxis JAVA
Publicado por: eleon en 23 Julio 2013, 17:38 pm
Entonces sólo habría que agregar... ??

Código:
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
  1. desc = valorPasaje*0.1;


Título: Re: Problema sintaxis JAVA
Publicado por: crksergio en 23 Julio 2013, 18:46 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
  1. 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.