黑马程序员技术交流社区

标题: 为什么我的程序生成的时候提示错误? [打印本页]

作者: 肖云    时间: 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