Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

ayuda en código...

fer_mhack

Bovino Milenario
Desde
21 Oct 2007
Mensajes
1.036
alguien ahora que me diga porque no ejecuta el negado cuando ingreso no, tendria que aparecer el de febrero tiene 28 dias...

import java.util.Scanner;
public class Bisiesto
{
public static void main (String[]a)
{
Scanner leer= new Scanner(System.in);
int mes;
String si,no;
System.out.println("Introduce un Numero, para obtener un Mes");
mes=leer.nextInt();
switch(mes)
{
case 1:
System.out.println("El Mes es Enero y este Tiene 31 Dias ");
break;
case 2:
System.out.println("El año es Bisiesto,Ingresa, si o no");
si=leer.next();

if (si==si)
{
System.out.println("El Mes es Febrero y tiene 29 Dias");
}
else
{
System.out.println("El Mes es Febrero y tiene 28 Dias");
}
break;
case 3:
System.out.println("El Mes es Marzo tiene 31 Dias");
break;
case 4:
System.out.println("El Mes es Abril tiene 30 Dias");
break;
case 5:
System.out.println("El Mes es Mayo tiene 31 Dias");
break;
case 6:
System.out.println("El Mes es Junio tiene 30 Dias");
break;
case 7:
System.out.println("El Mes es Julio tiene 31 Dias");
break;
case 8:
System.out.println("El Mes es Agosto tiene 31 Dias");
break;
case 9:
System.out.println("El Mes es Septiembre tiene 30 Dias");
break;
case 10:
System.out.println("El Mes es Octubre tiene 31 Dias");
break;
case 11:
System.out.println("El Mes es Noviembre tiene 30 Dias");
break;
case 12:
System.out.println("El Mes es Diciembre tiene 31 Dias");
break;
default:
System.out.println("El Numero ingrasado no corresponde a ningun Mes, Por favor Ingresa otro");
break;
}
}
 
Me parece que el problema es que la división no está definida en el conjunto de los números enteros y recuerda que Java no puede realizar "casting" entre tipos de datos donde se pueda presentar pérdida de precisión.

Lo que puedes hacer es declarar los tipos como float y después al resultado de la división redondearlo.

Es lo que se me ocurre de forma "rápida".

Suerte con ello... n_n
 
mira.. yo lo haria asi..
despues de que lees del teclado

...
m=cantidad/1000;
cantidad=cantidad%1000
c=cantidad/100
cantidad=cantidad%100;
d=cantidad/10;
cantidad=cantidad%10;
u=cantidad;
system.out.println("unidades: "+u+", decenas: "+d+", centenas: "+c+", millares: "+m);
 
alguien me puede decir porque no ejecuta el negado cuando ingreso no, tendria que aparecer el de febrero tiene 28 dias...

import java.util.Scanner;
public class Bisiesto
{
public static void main (String[]a)
{
Scanner leer= new Scanner(System.in);
int mes;
String si,no;
System.out.println("Introduce un Numero, para obtener un Mes");
mes=leer.nextInt();
switch(mes)
{
case 1:
System.out.println("El Mes es Enero y este Tiene 31 Dias ");
break;
case 2:
System.out.println("El año es Bisiesto,Ingresa, si o no");
si=leer.next();

if (si==si)
{
System.out.println("El Mes es Febrero y tiene 29 Dias");
}
else
{
System.out.println("El Mes es Febrero y tiene 28 Dias");
}
break;
case 3:
System.out.println("El Mes es Marzo tiene 31 Dias");
break;
case 4:
System.out.println("El Mes es Abril tiene 30 Dias");
break;
case 5:
System.out.println("El Mes es Mayo tiene 31 Dias");
break;
case 6:
System.out.println("El Mes es Junio tiene 30 Dias");
break;
case 7:
System.out.println("El Mes es Julio tiene 31 Dias");
break;
case 8:
System.out.println("El Mes es Agosto tiene 31 Dias");
break;
case 9:
System.out.println("El Mes es Septiembre tiene 30 Dias");
break;
case 10:
System.out.println("El Mes es Octubre tiene 31 Dias");
break;
case 11:
System.out.println("El Mes es Noviembre tiene 30 Dias");
break;
case 12:
System.out.println("El Mes es Diciembre tiene 31 Dias");
break;
default:
System.out.println("El Numero ingrasado no corresponde a ningun Mes, Por favor Ingresa otro");
break;
}
}

}
 
se que el error ha de estar aqui, pero no se en que
System.out.println("El año es Bisiesto,Ingresa, si o no");
si=leer.next();

if (si==si)
{
System.out.println("El Mes es Febrero y tiene 29 Dias");
}
else
{
System.out.println("El Mes es Febrero y tiene 28 Dias");
}
break;
 
El error esta en que estas comparando la variable con ella misma
Código:
if (si==si)
Esto es como si pusieras 1=1, siempre te va a dar verdadero puesto que una variable siempre es igual a ella misma, en todo caso lo que deberias hacer es comparar las cadenas, como si hicieras si=="si", nadamas que en java las comparaciones de cadenas no se hacen con el operador ==, para comparar string debes usar equals (aqui la documentacion).

Debe quedarte algo asi:
Código:
if (si.equals("si"))
{
System.out.println("El Mes es Febrero y tiene 29 Dias");
}
else 
{
System.out.println("El Mes es Febrero y tiene 28 Dias");
}
 
System.out.println("El año es Bisiesto,Ingresa, si o no");
si=leer.next();

if (si==si)
{
System.out.println("El Mes es Febrero y tiene 29 Dias");
}
if (no==28)
{
System.out.println("El Mes es Febrero y tiene 28 Dias");
}
 
Volver
Arriba