A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 肖云 中级黑马   /  2012-5-24 13:25  /  2022 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

错误提示为:     “方法.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;
                    }
                }
           
        }

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

4 个回复

正序浏览
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中有返回,但是,整个方法是没有返回的

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
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;

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马