黑马程序员技术交流社区
标题:
为什么我的程序生成的时候提示错误?
[打印本页]
作者:
肖云
时间:
2012-5-24 13:25
标题:
为什么我的程序生成的时候提示错误?
错误提示为: “方法.Program.Test(int)”: 并非所有的代码路径都返回值
static void Main(string[] args)
{
string input = "";
int number = 0;
bool result;
do
{
Console.WriteLine("请输入一个正整数,输入q结束");
input = Console.ReadLine();
try
{
number = Convert.ToInt32(input);
result = Test(number);
if (result)
{
Console.WriteLine("{0}是质数", number);
}
else
{
Console.WriteLine("{0}不是质数",number);
}
}
catch
{
if (input == "q")
{
Console.WriteLine("程序结束");
break;
}
else
{
Console.WriteLine("输入有误,请输入一个正整数");
continue;
}
}
}while(true);
}
//判断一个数是否是质数的方法
public static bool Test(int number)
{
for (int i = 2; i < number; i++)
{
if (number % i == 0)
{
return false;
}
else
{
return true;
}
}
}
作者:
牛景亮
时间:
2012-5-24 16:43
public static bool Test(int number)
{
for (int i = 2; i < number; i++)
{
if (number % i == 0)
{
return false;
}
else
{
return true;
}
}
}
代码中for中if、else有可能执行不了,这样就没有返回值了。
必须在for循环外面也有返回值。即:要在for循环外面也写上return false;
作者:
谭威
时间:
2012-5-25 20:33
public static bool Test(int number)
{
bool flag=false;//先默认设为false;
for (int i = 2; i < number; i++)
{
if (number % i == 0)
{
flag= false;
}
else
{
flag=true;
}
}
return flag;//在这里返回。
}
像这样写规范些..你之前是在if else中有返回,但是,整个方法是没有返回的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2