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

C# error

Estas en el tema de C# error en el foro de Programación General en Foros del Web. Hola, estoy empezando a dar los primeros pasos de programacion y al hacer una funcion me encuentro con un error y me he atacado y ...
  #1 (permalink)  
Antiguo 17/11/2012, 05:28
 
Fecha de Ingreso: noviembre-2012
Mensajes: 2
Antigüedad: 11 años, 5 meses
Puntos: 0
C# error

Hola, estoy empezando a dar los primeros pasos de programacion y al hacer una funcion me encuentro con un error y me he atacado y no veo el error.
os pego el codigo por si pudierais echarme una mano.
Un saludo.

.................................................. .................................................. ..

Error 1 'ConsoleApplication2.Program.Dia(int, int)': no todas las rutas de código devuelven un valor.
.................................................. .................................................. .....
static bool Bisiesto(int year)
{
if (((year % 4 == 0) && ((year % 100 != 0)) || (year % 400 == 0)))
{
return true;
}
else
{
return false;
}
}
static int Dia(int mes, int year)
{
if (Bisiesto(year))
{
if ((mes == 1) || (mes == 3) || (mes == 5) || (mes == 7) || (mes == 8) || (mes == 10) || (mes == 11) || (mes == 12))
{
return 31;
}
else
{
if ((mes == 4) || (mes == 6) || (mes == 9))
{
return 30;
}
else
{
if (mes == 2)
{
return 29;
}
}
}
}
else
{
if ((mes == 1) || (mes == 3) || (mes == 5) || (mes == 7) || (mes == 8) || (mes == 10) || (mes == 11) || (mes == 12))
{
return 31;
}
else
{
if ((mes == 4) || (mes == 6) || (mes == 9))
{
return 30;
}
else
{
if (mes == 2)
{
return 28;
}
}
}
}
}
  #2 (permalink)  
Antiguo 19/11/2012, 11:13
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: C# error

Te faltan returns. Yo usaria una variable auxiliar y le iría dando valores y al final de la función pondría un único return, si estás empezando es más claro
  #3 (permalink)  
Antiguo 20/11/2012, 14:25
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 11 meses
Puntos: 73
Respuesta: C# error

En tu funcion Dia, solamente necesitarías comprobar Bisiesto cuando el mes sea 2:

Código C:
Ver original
  1. static int Dia (int mes, int year)
  2. {
  3.     if ((mes < 1) || (mes > 12))    // Comprueba primero que el mes es válido
  4.         return 0;
  5.     if ( (mes == 1) etc)
  6.         return 31;
  7.     // Aqui no necesitarias un else, si llega aqui es que no es un mes de 31 dias
  8.     if ( (mes == 4) etc)
  9.         return 30;
  10.     // Aqui tampoco necesitarias un else, si llega aqui es febrero y comprobamos si es bisiesto
  11.     if (Bisiesto(year))
  12.         return 29;
  13.     else
  14.         return 28;
  15. }

Desde luego, lo más adecuado sería una sentencia switch (míratela y prueba).

Saludos,

Etiquetas: programa
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 16:57.