我对返回类型有疑问,下面的代码块无法正常工作,该块位于返回布尔值的Method内,但是当满足以下条件时,似乎什么也不返回,它中断了我的程序,我知道“返回”将值返回给调用方/方法,在这种情况下,“ for”块是方法吗?还是“如果”?
if (!Even)
{
for (N = 3; N < pNum+1 ; N += 2)
{
Result = pNum % N;
if (N == pNum)
return true ;
if (Result == 0)
return false;
}
}
如果您想检查完整的代码在这里
using System;
namespace Ejercicio1
{
class Program
{
static void Main(string[] args)
{
int Resultado = 0;
int Numero = 0;
int N = 0;
bool Par;
bool Primo;
string Inpt = "";
Program CheckPrimo = new Program();
Console.WriteLine("Dame un numero Impar o Primo");
Inpt = Console.ReadLine();
try
{
Numero = Convert.ToInt32(Inpt);
Console.WriteLine("{0}", Numero);
}
catch
{
Console.WriteLine("Solo se aceptan numeros como input");
System.Environment.Exit(0);
}
Par = (Numero % 2 == 0);
Primo = CheckPrimo.MCheckPrimo(Numero, Par);
if (Par)
Console.WriteLine( Par ? "El numero es Par" : "El numero es Impar");
if (Primo)
Console.WriteLine( Primo ? "El numero es Primo" : "El numero no es Primo");
}
private bool MCheckPrimo(int pNumber,bool Even)
{
int Base = 2;
int pNum = 0;
int N = 0;
double Result = 0;
pNum = pNumber;
if (Even && pNum == 2)
{
return true;
}
if (Even && pNum > 2)
{
return false;
}
if (!Even)
{
for (N = 3; N < pNum+1 ; N += 2)
{
Result = pNum % N;
if (N == pNum)
return true ;
if (Result == 0)
return false;
}
}
}
}
}
提前致谢