Principales respuestas
Variable Local No asugnada

Pregunta
-
{
double Cat, Hr, Salario, Descuento, Subsidio;
Console.WriteLine("Ingrese la categoria del empleado");
Cat = double.Parse(Console.ReadLine());
Console.WriteLine("Ingrese horas laboradas");
Hr = double.Parse(Console.ReadLine());
if (Cat == 1)
{
Salario = 20000 * Hr;
}
else if (Cat == 2)
{
Salario = 15000 * Hr;
}
else if (Cat == 3)
{
Salario = 10000 * Hr;
}
else if (Cat == 4)
{
Salario = 7500 * Hr;
}
if (Salario > 1000000) // En este punto me dice que la variable no esta asignada, pero esta declarada al inicio y // tampoco lleva el valor asignado para continuar el algoritmo. GRACIAS
{
Descuento = Salario * 0.72;
Salario = Salario - Descuento;
Console.WriteLine("El Salario a pagar es {0} ", Salario);
Console.WriteLine("El descuento por salud es {0} ", Descuento);
Console.ReadKey();
}
else
{
Subsidio = Salario * 0.15;
Descuento = Salario * 0.72;
Salario = (Salario + Subsidio) - Descuento;
Console.WriteLine("El Salario a pagar es {0} ", Salario);
Console.WriteLine("El descuento por salud es {0} ", Descuento);
Console.WriteLine("El subsidio es {0} ", Subsidio);
Console.ReadKey();
}
}
Respuestas
-
Hola:
Te lo explicare con palabras simples y llanas...
Lo que pasa es que estas declarando una variable sin un valor por defecto, variable que pretendes asignar si una de las condiciones If se cumplen, después preguntas si el valor contenido en dicha variable es superior a 1000000, pero preguntante que pasara si ninguna de las condiciones if se cumplen? entonces recibirias una bonita excepción de referencia nula, porque estas preguntando por el contenido de la variable que nunca le asignaste un valor....eso es lo que evita el Vs informandote antes de compilar.
Para resolver el problema debes si o si inicializar la variable con un valor por defecto, en tu caso el cero seria perfecto!
Aplica este cambio y nos comentas como te fue!
Por ultimo no olvides cerrar la pregunta marcando la respuesta como tal...
Saludos desde Monterrey, Nuevo León, México!!!
- Marcado como respuesta Kleingir domingo, 17 de noviembre de 2013 17:51
Todas las respuestas
-
Utiliza el metodo de comparacion, aca estan los ejemplos
http://msdn.microsoft.com/en-us/library/fyxd1d26(v=vs.110).aspx
-
Hola:
Te lo explicare con palabras simples y llanas...
Lo que pasa es que estas declarando una variable sin un valor por defecto, variable que pretendes asignar si una de las condiciones If se cumplen, después preguntas si el valor contenido en dicha variable es superior a 1000000, pero preguntante que pasara si ninguna de las condiciones if se cumplen? entonces recibirias una bonita excepción de referencia nula, porque estas preguntando por el contenido de la variable que nunca le asignaste un valor....eso es lo que evita el Vs informandote antes de compilar.
Para resolver el problema debes si o si inicializar la variable con un valor por defecto, en tu caso el cero seria perfecto!
Aplica este cambio y nos comentas como te fue!
Por ultimo no olvides cerrar la pregunta marcando la respuesta como tal...
Saludos desde Monterrey, Nuevo León, México!!!
- Marcado como respuesta Kleingir domingo, 17 de noviembre de 2013 17:51
-