hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
07 de Octubre de 2008, 10:08:06
Noticias: Reporte de temas
Para ver este enlace Registrate o Inicia Sesion
> Aqui

+  Foros pOrtal Hacker
|-+  Programacion
| |-+  JAVA (Moderador: kamui23)
| | |-+  Sentencia Switch
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Sentencia Switch  (Leído 1234 veces)
CHR0N05
Colaborador
****
Desconectado Desconectado

Mensajes: 1,554


Chronos es Dios de Dioses!!...


Ver Perfil WWW
« : 03 de Abril de 2008, 09:34:08 »

Apareciendo de nuevo... xD...

Bueno tengo un problema con la sentencia Switch...

Código:

Switch (condición)
{
    case 1:
               condición 1;
               condición 2;
               .....
    case 2:
               condición 1;
               condición 2;
               .....
}

yaps... asi tengo entendido que se utiliza la sentencia Switch...

Ahora... cuando realizo un programa:

Código:
import java.io.*;
import java.lang.Math;

public class Menu
{
   
    public static void main(String[] args)
    {
    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader (isr);
    String cadena;
   
    int op=0;
    try
    {
    System.out.print ("MENÚ\n");
    System.out.println ("\n1.- Calcula el perímetro de un cuadrado\n");
    System.out.print ("2.- Calcula el área de un cuadrado\n");
    System.out.print ("3.- Calcula el perímetro de un rectángulo\n");
    System.out.print ("4.- Calcula el área de un rectángulo\n");
    System.out.print ("5.- Calcula el área de un triángulo\n");
    System.out.print ("6.- Calcula el perímetro de una circunsferencia\n");
    System.out.print ("7.- Calcula el área de un círculo\n");
    System.out.print ("8.- Salir\n");
    System.out.print ("Su opción es: ");
op = Integer.parseInt(br.readLine());

switch (op)
{
case '1':
int percuadrado,a = 0;
System.out.print ("Calcula el perímetro de un cuadrado\n");
System.out.print ("\nEl lado del cuadrado es: ");
a = Integer.parseInt(br.readLine());
percuadrado = 4 * a;
System.out.print ("El perimetro del cuadrado es: " + percuadrado);
break;

case '2':
int areacuadrado, b = 0;
System.out.print ("Calcula el area de un cuadrado\n");
System.out.print ("\nEl lado del cuadrado es: ");
b = Integer.parseInt(br.readLine());
areacuadrado = b * b;
System.out.print ("El área del cuadrado es: " + areacuadrado);
break;

case '3':
int perrectangulo, c = 0;
int d = 0;
System.out.print ("Calcula el perímetro de un rectángulo\n");
System.out.print ("\nEl ancho del rectángulo es: ");
c = Integer.parseInt(br.readLine());
System.out.print ("\nEl largo del rectángulo es: ");
d = Integer.parseInt(br.readLine());
perrectangulo = (2*a)+(2*b);
System.out.print ("El área del cuadrado es: " + perrectangulo);
break;

case '4':
int arearectangulo, e = 0;
int f = 0;
System.out.print ("Calcula el perímetro de un rectángulo\n");
System.out.print ("\nEl ancho del rectángulo es: ");
e = Integer.parseInt(br.readLine());
System.out.print ("\nEl largo del rectángulo es: ");
f = Integer.parseInt(br.readLine());
arearectangulo = e*f;
System.out.print ("El área del retángulo es: " + arearectangulo);
break;

case '5':
int areatriangulo, g = 0, h = 0;
System.out.print ("Calcula el área de un triángulo\n");
System.out.print ("\nLa Altura del triángulo es: ");
g = Integer.parseInt(br.readLine());
System.out.print ("\nLa Base del triángulo es: ");
h = Integer.parseInt(br.readLine());
areatriangulo = (e*f)/2;
System.out.print ("El área del cuadrado es: " + areatriangulo);
break;

case '6':
int circunperi, r = 0;
System.out.print ("Calcula el perímetro de una circunferencia\n");
System.out.print ("\nEl radio de una circunferencia es: ");
r = Integer.parseInt(br.readLine());
circunperi = (2*3.14)*r;
System.out.print ("El perímetro de una circunferencia es: " + circunperi);
break;

case '7':
int circunarea, q = 0;
System.out.print ("Calcula el perímetro de una circunferencia\n");
System.out.print ("\nEl radio de una circunferencia es: ");
q = Integer.parseInt(br.readLine());
circunarea = (2*3.14)*q;
System.out.print ("El perímetro de una circunferencia es: " + circunarea);
break;

case '8':
System.exit (0);
break;

default:
System.out.print("Error");
}

    }
    catch (Exception e)
    {
    System.out.print ("Error");
    }
    }
}

No entra a la sentencia... :S.. por qué Huh.. que es lo que pasa Huh...

Saludos...
En línea

SOLO LOS QUE DEJAN DE INTENTAR, FRACASARÁN...

Para ver este enlace Registrate o Inicia Sesion


Para ver este enlace Registrate o Inicia Sesion
Torneo Matemático Fases 2 + UPDATE


Para ver este enlace Registrate o Inicia Sesion
Convocatoria E-Zine HxS #1
-Plaga-
NZ2
**
Desconectado Desconectado

Mensajes: 285


Ver Perfil
« Respuesta #1 : 04 de Abril de 2008, 07:37:27 »

Tu caso es el siguiente, en los casos del Switch, estas utilizando la sentecia case '1' las comillas las utilizaste como si el dato fuera un char, pero es un entero lo que leiste, quitalas y ya, también vi que en el caso 6, declaras una variable int circunperi; pero al final de ese caso la pones (2*3.14)*r; y al multiplicar por 3.14 deberia ser flotante para que no marque error, lo mismo pasa con el caso 7 y bueno algunas que otras variables que no estas inicializando y otras que nunca usas, esos fueron los fallos principales que vi en tu Code, pero ya al compilar te daras cuenta.

Saludos, espero haberte ayudado. Wink
En línea
CHR0N05
Colaborador
****
Desconectado Desconectado

Mensajes: 1,554


Chronos es Dios de Dioses!!...


Ver Perfil WWW
« Respuesta #2 : 04 de Abril de 2008, 09:53:48 »

Tu caso es el siguiente, en los casos del Switch, estas utilizando la sentecia case '1' las comillas las utilizaste como si el dato fuera un char, pero es un entero lo que leiste, quitalas y ya, también vi que en el caso 6, declaras una variable int circunperi; pero al final de ese caso la pones (2*3.14)*r; y al multiplicar por 3.14 deberia ser flotante para que no marque error, lo mismo pasa con el caso 7 y bueno algunas que otras variables que no estas inicializando y otras que nunca usas, esos fueron los fallos principales que vi en tu Code, pero ya al compilar te daras cuenta.

Saludos, espero haberte ayudado. Wink

Con respecto a lo primero ( 'xx'), si me di cuenta... y ahi entra... con 3.14, tambien le puse "float", y me sale un error de:

Código:
possible loss of precision


Código:
....
case 7:
float circunarea;
float q = 0;
System.out.print ("Calcula el perímetro de una circunferencia\n");
System.out.print ("\nEl radio de una circunferencia es: ");
q = Integer.parseInt(br.readLine());
circunarea = (2*3.14)*q;
System.out.print ("El perímetro de una circunferencia es: " + circunarea);
break;

Saludos....
En línea

SOLO LOS QUE DEJAN DE INTENTAR, FRACASARÁN...

Para ver este enlace Registrate o Inicia Sesion


Para ver este enlace Registrate o Inicia Sesion
Torneo Matemático Fases 2 + UPDATE


Para ver este enlace Registrate o Inicia Sesion
Convocatoria E-Zine HxS #1
-Plaga-
NZ2
**
Desconectado Desconectado

Mensajes: 285


Ver Perfil
« Respuesta #3 : 04 de Abril de 2008, 09:56:46 »

yo le puse double y me corrio bien y al declarar la q como double tendrias que cambiar esto q = Integer.parseI nt(br.readLine());
por q = Double.parseDo uble(br.readLine());

Con esos ajustes me corrio bien y entro al switch.
En línea
CHR0N05
Colaborador
****
Desconectado Desconectado

Mensajes: 1,554


Chronos es Dios de Dioses!!...


Ver Perfil WWW
« Respuesta #4 : 04 de Abril de 2008, 10:02:50 »

yo le puse double y me corrio bien y al declarar la q como double tendrias que cambiar esto q = Integer.parseI nt(br.readLine());
por q = Double.parseDo uble(br.readLine());

Con esos ajustes me corrio bien y entro al switch.

Gracias... Wink...

Ahora un par de dudas... :S

Código:
Integer.parseInt

Se utiliza netamente para valores reales enteros Huh para los valores flotantes deberia ser algo similar a esot Huh

Código:
Float.parseFloat

Y lo último cual es la funcionalidad especifica de "parse"...

Saludos... Gracias
En línea

SOLO LOS QUE DEJAN DE INTENTAR, FRACASARÁN...

Para ver este enlace Registrate o Inicia Sesion


Para ver este enlace Registrate o Inicia Sesion
Torneo Matemático Fases 2 + UPDATE


Para ver este enlace Registrate o Inicia Sesion
Convocatoria E-Zine HxS #1
-Plaga-
NZ2
**
Desconectado Desconectado

Mensajes: 285


Ver Perfil
« Respuesta #5 : 04 de Abril de 2008, 10:11:27 »

Gracias... Wink...

Ahora un par de dudas... :S

Código:
Integer.parseInt

Se utiliza netamente para valores reales enteros Huh para los valores flotantes deberia ser algo similar a esot Huh

Código:
Float.parseFloat

Y lo último cual es la funcionalidad especifica de "parse"...

Saludos... Gracias
Si, solo para enteros, seria el parseInt, y y el parseInt es simplemente un metodo de la clase Integer que se encarga de convertir a un entero el argumento que reciba, ese el float, double, etc, tambien tienen un metodo similar que serian parse(tipo de dato), pero siempre puedes convertir por cast.
En línea
CHR0N05
Colaborador
****
Desconectado Desconectado

Mensajes: 1,554


Chronos es Dios de Dioses!!...


Ver Perfil WWW
« Respuesta #6 : 04 de Abril de 2008, 10:15:52 »

Ok!...

Aclaradas las dudas... Wink

Saludos...
En línea

SOLO LOS QUE DEJAN DE INTENTAR, FRACASARÁN...

Para ver este enlace Registrate o Inicia Sesion


Para ver este enlace Registrate o Inicia Sesion
Torneo Matemático Fases 2 + UPDATE


Para ver este enlace Registrate o Inicia Sesion
Convocatoria E-Zine HxS #1
Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC hacker

Juegos gratis - Articulos PHP - Juegos - Trucos - Letras - Juegos - Juegos Online