jar*_*rus 0 .net c# visual-studio-2005 console-application
嗨,我刚接触c#,并试图编码,但得到错误可以任何人帮我这个我做错了什么?
using System;
using System.Collections.Generic;
using System.Text;
namespace hodder
{
class Program
{
public static void Main()
{
isHodder(3);
}
static int isHodder(int n)
{
int k = n;
for (int i = 2; i <= n / 2;i++ )
{
if ((n % 1) == 0)
{
return 0;
}
else
{
for (int j = 2; j <= k;j++ )
{
if (n == (2^ j) - 1)
{
return 1;
}
else
{
return 0;
}
k=(2^j)-1;
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在"static int isHodder(int n)"'hodder.Program.isHodder(int)'上得到错误:并非所有代码路径都返回一个值
和"k =(2 ^ j)-1"上的"无法访问的代码"
第一个错误,"并非所有代码路径都返回一个值"意味着代码可以遵循的路径,其中不返回任何值(即:调用isHodder(1)).您需要在for循环之外返回一些值.另外,因为你在第二个for循环中有一个if/else块
k=(2^j)-1;
Run Code Online (Sandbox Code Playgroud)
永远不会被执行.
static int isHodder(int n)
{
int k = n;
for (int i = 2; i <= n / 2; i++)
{
if ((n % 1) == 0)
{
return 0;
}
else
{
for (int j = 2; j <= k; j++)
{
if (n == (2 ^ j) - 1)
{
return 1;
}
else
{
return 0;
}
k = (2 ^ j) - 1;
}
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)