Foros del Web » Programación para mayores de 30 ;) » Programación General »

Problema con un programa en java :(

Estas en el tema de Problema con un programa en java :( en el foro de Programación General en Foros del Web. Cuando lo compilo me salen 2 errores pero cuando quiero coregirlos creo que lo empeoro más...... a ver si me pueden ayudar import javax.swing.*; public ...
  #1 (permalink)  
Antiguo 30/01/2008, 18:41
 
Fecha de Ingreso: enero-2008
Mensajes: 4
Antigüedad: 16 años, 9 meses
Puntos: 0
Exclamación Problema con un programa en java :(

Cuando lo compilo me salen 2 errores pero cuando quiero coregirlos creo que lo empeoro más...... a ver si me pueden ayudar







import javax.swing.*;

public class CalMat{
public static void main(String[] args){

boolean a;
String (toBoolean) Letra;


Letra = JOptionPane.showInputDialog("Dame la calificacion del alumno");
a = Boolean.parseboolean(Letra);

if (100 >= a <= 90)
{
System.out.println("A");
}

else if (89 >= a <= 80)
{
System.out.println("B");
}

else if (79 >= a <= 70)
{
System.out.println("C");
}

else if (a < 70)
{
System.out.println("D");
}


System.out.println("Tu letra de asignacion es " + Letra);

}
}
  #2 (permalink)  
Antiguo 31/01/2008, 03:23
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 10 meses
Puntos: 606
Re: Problema con un programa en java :(

Dos cosas:

1) Que errores te salen
2) Estas SEGURO que las comparaciones estan bien escritas?
  #3 (permalink)  
Antiguo 31/01/2008, 07:33
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años, 5 meses
Puntos: 28
Re: Problema con un programa en java :(

Revisa la parte b, de la sección de operadores en este tutorial.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #4 (permalink)  
Antiguo 31/01/2008, 09:17
Avatar de GhostGirl  
Fecha de Ingreso: enero-2008
Mensajes: 11
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Problema con un programa en java :(

Por lo que veo estás utilizando un operador utilizado para int en un tipo de dato boolean ... eso no lo puedes hacer ... quizás lo que deberías hacer es convertir a Integer ...

int nota = Integer.parseInt(Letra);

Luego esa variable 'nota' es la que terminas comparando en las condiciones ...

Bye
  #5 (permalink)  
Antiguo 06/02/2008, 09:03
venkman
Invitado
 
Mensajes: n/a
Puntos:
Re: Problema con un programa en java :(

¿Sólo te salen 2 errores?

Cita:
Iniciado por Bershke Ver Mensaje
import javax.swing.*;

public class CalMat{
public static void main(String[] args){

boolean a;
Esto en sí no es un error, pero si lo que quieres hacer luego es convertir la letra a un número, claramente a no puede ser de tipo boolean.

int a;

Cita:
Iniciado por Bershke Ver Mensaje
String (toBoolean) Letra;
Ahí hay otro error. Eso de (toBoolean) ¿de qué va?
Tampoco deberías llamar Letra a una variable que en realidad va a contener un número. Pero en fin... tú verás.

String Letra;
Cita:
Iniciado por Bershke Ver Mensaje
Letra = JOptionPane.showInputDialog("Dame la calificacion del alumno");
a = Boolean.parseboolean(Letra);
Esto también es "válido" pero como decía arriba, no tiene sentido transformar la Letra en un booleano. Lo que querrás es transformarlo en un int:

a = Integer.parseInt(Letra);

pero es que además, nada te garantiza que el usuario realmente escriba un número válido. Así que en realidad tendrías que hacer algo como:

a = 0;
while (a == 0) {
try {
Letra = JOptionPane.showInputDialog("Dame la calificacion del alumno");
a = Integer.parseInt(Letra);
} catch (NumberFormatException nfe) {
// Saca un aviso o lo que quieras diciendo que eso no es un número válido.
a=0;
}
}


Cita:
Iniciado por Bershke Ver Mensaje

if (100 >= a <= 90)
Todas las comparaciones están mal. No sólo no se puede escribir así sino que además, aunque se pudiera, las estarías haciendo mal. Eso se leería "si a es menor de 100 y es menor de 90...", lo cual es un tanto absurdo.

Lo que quieres escribir es:

if ( (90<=a) && (a<=100) )

Cita:
Iniciado por Bershke Ver Mensaje
{
System.out.println("A");
}

else if (89 >= a <= 80)
else if ( (80<=a) && (a<90) )

Cita:
Iniciado por Bershke Ver Mensaje
{
System.out.println("B");
}

else if (79 >= a <= 70)
else if ( (70<=a) && (a<80) )

Cita:
Iniciado por Bershke Ver Mensaje
{
System.out.println("C");
}

else if (a < 70)
{
System.out.println("D");
}


System.out.println("Tu letra de asignacion es " + Letra);
Esto no es que tenga nada particularmente mal, pero no va a hacer lo que crees que debería hacer. Letra contiene el número que ha metido el usuario. No contiene la letra. La letra correspondiente sólo la has escrito pero no la has guardado en ningún sitio.

Cita:
Iniciado por Bershke Ver Mensaje

}
}


Tu último error es que básicamente no sabes lo que estás haciendo y te has lanzado a escribir lo que sea. Necesitas ir más despacio, empezando por preguntar la nota y sacarla. Cuando eso te funcione, piensa en sacar la letra que corresponda. cuando eso ya esté bien entonces piensa en contestar al usuario.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:04.