[ Foro de C# ]
mi duda es que al querer poner el siguiente código:
namespace Control_Errores
{
class Program
{
static void Main(string[] args)
{
int num1;
Inicio:
try
{
Console.WriteLine("Ingresa tu numero\n");
Console.WriteLine("numero:\n");
num1= int.Parse(Console.ReadLine());
}
catch
{
Console.WriteLine("Error: Solo se permiten numeros enteros");
goto Inicio;
}}
class operaciones {
public bool esperfecto (int num1 )//<----- me indica el error no todas las rutas de código devuelven valor
{
int suma = 0;
for (int i =1; i <num1; i++)
{
if(num1%i ==0){
suma = suma +1;
}
if(suma == num1 ){
return true;
}
else {
return false;
}
}
}
}
}
en el método boolean que recive el valor num1 para saber si es perfecto me indica error, ya que quiero que me retorne true o false para indicar desde main al usuario si el numero que capturo es perfecto o no.
El error "no todas las rutas de código devuelven valor" se refiere a que no todos los return deben estar dentro de un "if", sino que debe existir un valor que sea el que se devuelve por defecto.
Puede que baste con que el final lo reescribas así:
if(suma == num1 )
{
return true;
}
return false;
Gracias me sirvió mucho me hago un caos con los meotodos y parámetros solo es cuestión de practicar saludos.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)