最近在研究什么 2022-08-02 19:36 采纳率: 100%
浏览 39
已结题

学C#过程中遇到的for和while循环的问题(针对输出1-100中的所有素数的问题)

在学习C#语言的时候遇到了在写”输出1-100间素数“的代码时的for和while 循环的问题,下图分别是外层循环用while和for循环的不同代码和结果。我认为得到的结果应该相同(手动疑惑)
问题相关代码,请勿粘贴截图
        //首先是for循环的正确代码,这里我没有异议
        for(int i = 2;i <100;i++)
        {
            bool a = true;
            for (int j = 2; j < i; j++)
            {
                if (i % j == 0)
                {
                    a = false;
                    break;
                }
            }
            
            if (a)
            {
                Console.WriteLine(i);
            }
        }
        Console.ReadKey();

然后是用外层用while循环的代码:

        //找出1-100内所有的质数(只能被1和他自己整除)
        int i = 2;
        while(i <=100)
        {
            bool a = true;
            for (int j = 2; j < i; j++)
            {
                if (i % j == 0)
                {
                    a = false;
                    break;
                }
            }
            i++;
            if (a)
            {
                Console.WriteLine(i);
            }
        }
        Console.ReadKey();
    
运行结果及报错内容

第一个for循环代码正确这里不放结果了,下图是用while循环的错误结果

img

我的解答思路和尝试过的方法

我觉得两个代码的效果应该是一样的啊?为啥后面的不对,是我while用的不对吗,求解。

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-08-02 20:03
    关注

    供参考,修改处见注释:

    //找出1-100内所有的质数(只能被1和他自己整除)
            int i = 2;
            while(i <=100)
            {
                bool a = true;
                for (int j = 2; j < i; j++)
                {
                    if (i % j == 0)
                    {
                        a = false;
                        break;
                    }
                }
                //i++; 这行移动到if(a){}下面
                if (a)
                {
                    Console.WriteLine(i);
                }
                i++;  //移动到这里
            }
            Console.ReadKey();
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 8月10日
  • 已采纳回答 8月2日
  • 创建了问题 8月2日

悬赏问题

  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本