ayuda en código...

fer_mhack

Bovino adicto
#1
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;
}
}
 

Zephyros

Bovino de la familia
#2
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
 
#3
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);
 

fer_mhack

Bovino adicto
#5
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;
}
}

}
 

fer_mhack

Bovino adicto
#6
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;
 
#7
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");
}
 
#9
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");
}
 
Arriba