最近在研究什么 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日

悬赏问题

  • ¥15 关于logstash转发日志时发生的部分内容丢失问题
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?