首页 > 代码库 > 无法输出的2

无法输出的2

前几天写课堂作业的时候遇到了一个问题,用c#写了一个质数排列,但是只能输出第一个质数61,控制台不输出2,有点懵。

 class Program
    {
        static void Main(string[] args)
        {
            bool isFind=false;

            int[] nums = new int[] { 61,55, 85, 2, 9 };

            for (int i = 0; i < 5; i++)
            {
                for (int j = 2; j < nums[i]; j++)
                {
                    if (nums[i]%j==0)
                    {
                        isFind = true;
                        break;
                    }
                }

                if (isFind==false)
                {
                    Console.WriteLine(nums[i]);

                }
                
            }            
            
        }
    }

 课堂上的IDE并不好用,拷回家用JAVA又写了一下才能在eclipse里打断点。

发现是个变量赋值的问题,在第一层for循环后面要重新给isFind=0才行啊,不然isFind一直是1,到2的时候也就完全无法输出了。

这种低级错误,谨慎避免。

补充下,2会输出是因为不满足第二层for里面的j<nums[i]。这点倒是写的时候就想到了。

严谨的逻辑要慢慢培养啊~

 

无法输出的2