首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我不知道为什么这个while循环不停止迭代

这个问题涉及到编程中的一个常见情况,即循环控制。在编程中,循环是一种重复执行特定代码块的结构。在这个问题中,while循环是一种常见的循环结构,它会根据给定的条件重复执行代码块,直到条件不再满足为止。

然而,如果while循环不停止迭代,可能有以下几个原因:

  1. 循环条件不满足:首先,需要检查循环条件是否正确设置。循环条件通常是一个布尔表达式,当表达式为真时,循环会继续执行。如果条件一直为真,循环就不会停止。因此,需要仔细检查循环条件是否正确,并确保在循环体内部能够改变条件的状态,以便在某个时刻循环条件不再满足。
  2. 循环体内部没有改变循环条件的状态:如果循环条件正确设置,但循环体内部没有改变循环条件的状态,那么循环将无法停止。在每次循环迭代中,需要确保循环体内部有适当的代码来改变循环条件的状态,以便在某个时刻循环条件不再满足。
  3. 循环体内部出现了无限循环:有时候,循环体内部的代码可能会导致无限循环的情况。例如,如果循环体内部没有适当的退出条件或跳出循环的语句,循环就会一直执行下去。在这种情况下,需要检查循环体内部的代码,确保存在适当的退出条件或跳出循环的语句,以避免无限循环。

总结起来,当while循环不停止迭代时,需要检查循环条件是否正确设置,并确保循环体内部有适当的代码来改变循环条件的状态。同时,需要避免出现无限循环的情况,确保循环体内部存在适当的退出条件或跳出循环的语句。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python 为什么设计 do-while 循环结构?

在回答这个问题之前,让我们再仔细思考一下 do-while 语法可以解决什么问题,看看使用这种结构能带来什么好处? 最显而易见的好处是:do-while 语法保证了会先执行一遍循环体代码。...分析完 do-while 的好处后,让我们回到主题:Python 为什么不需要设计 do-while 循环语法呢?...首先,Python 离底层应用编程太远了,就不用考虑汇编指令的优化了,同时,它也涉及宏的使用。...有了 do 子句后,很容易就能实现 do {...} while (0) 的跳转控制效果。 但是,这个 PEP 遭到了一些核心开发者的反对。...就个人的感觉而言,也不赞成引入 PEP-315 那种可选的 do-while 语法,虽然它比固定形式的 do-while 结构更为灵活和优雅一点。

1.2K10

Java 中为什么推荐在 while 循环中使用 sleep()

前言最近逛 CSDN 看到一篇文章,文章大意是说为什么循环推荐使用 sleep 操作,原因在于线程挂起和唤醒会有很大的性能消耗,并推荐使用 Timer 及 ScheduledExecutorService...= true; public static void main(String[] args) { while (FLAG) { try {...// do something }}上面的代码你可能会得到下面的警告:Call to ‘Thread.sleep()’ in a loop, probably busy-waiting// 循环中调用...sleep 可能会导致忙等待 // 如 FLAG 变量状态未改变 那么线程可能一直循环,并不断进行线程挂起和唤醒原因是否正确主要原因和原文博主所说有很大的关系但不完全正确:我们都知道 Java 线程实际对应着操作系统中的一个线程...对技术的热情是不断学习和分享的动力。的博客是一个关于Java生态系统、后端开发和最新技术趋势的地方。

1.3K30
  • 多线程:为什么while循环中加入System.out.println,线程可以停止

    ,由于 stopReqested 的更新值在主内存中,而线程栈中的值不是最新的,所以会一直循环,线程并不能停止。...最开始的代码,一直处于试了循环中,CPU 处于一直被饱受占用的时候,这个时候 CPU 没有时间,JVM 也不能强制要求 CPU 分点时间去取最新的变量值。...这个时候CPU就有可能有时间去保证内存的可见性,于是while循环可以被终止。...其实,也可以在 while 循环里面加上 sleep ,让 run 方法放弃 cpu ,但是不放弃锁,这个时候由于 CPU 有空闲的时候就去按照 JVM 的要求去保证内存的可见性。如下所示。...run 方法里面休息了 3 秒,cpu 有充足的空闲时间去取变量的最新值,所以循环执行一次就停止了。

    1.5K50

    python流程控制

    (1)一般语法 while循环的语法如下: while 条件: # 循环体 # 如果条件为真,那么循环体则执行 # 如果条件为假,那么循环执行 现实中的实例...(听歌) while True: print('痒') print('社会摇') print('喜洋洋') print('要这铁棒有何用') while循环的执行体会一直循环执行...break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。 break语句用在while和for循环中。...如果您使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。...和for循环的区别: for循环用于已经知道循环的次数或者循环遍历可迭代的数据类型例如:列表 字典等 while循环用于不知道具体的循环次数的情况或者无限循环 发布者:全栈程序员栈长,转载请注明出处

    1.9K40

    每天 3 分钟,小闫带你学 Python(八)

    总之就是不断的循环同样的内容。 还有大家音乐播放器里面的单曲循环不知道曾让你单曲循环的是哪一首呢?可以把歌曲名称留言在文章底部。 再举一个例子。大家在谈恋爱的时候经常会碰到给女朋友道歉的情况。...i=0 满足条件,因此执行 while 内部代码,直到 i=5 时停止循环。 i+=1 代表每次执行完后,将 i 进行加 1 操作,以保证程序按照预期进行。...假设没有加 1 操作, i 永远等于 0,那么它永远满足条件,此时变成了一个死循环(即无限循环下去,永远不停止)。...同样先来看一下它的格式: for 临时变量 in 列表,字符串之类的可迭代对象: 满足条件时循环执行的代码 可迭代对象就是可以被遍历的对象,即使用 for 循环可以将里面的每一个元素提取出来,并赋值给临时变量...大家暂时记住列表,字符串是可迭代对象。 for 循环内部可以使用此临时变量,外部不可以使用。

    64820

    【实用】用 FP 思想将 JS 循环做简单封装~

    「这是参与2022首次更文挑战的第24天,活动详情查看:2022首次更文挑战」 ---- 本篇带来 FP 函数式编程思想在 JS【循环】中的应用。...比如漏写 < 号; 如果索引 i 发生变化,循环就会造成错误(那为什么说 i 容易发生变化呢?...因为对于循环来说,比如 while 结构,索引 i 是外部变量,外部变量的修改不受循环内部所控制;) 代码太长了,循环结构有可能比操作的功能代码都长; 所以,我们尝试用 FP 函数式编程思路对循环做下改造...即我们不能随意停止循环或者跳出循环; 为了解决这个问题,尝试采用 .some(fn) 来代替 .forEach(fn); some()  方法测试数组中是不是至少有1个元素通过了被提供的函数测试。...小结:通过 FP 函数式编程思维对“循环”进行了简单封装,使得代码的可读性和可扩展性都增强了一些,针戳 本篇主体译自:functional-ranges-for-loops-generating-better-loops

    99930

    白话解释 迭代器(ITERATOR)和

    循环开始说起 想必大家在学习编程的时候,肯定学到过for循环while循环,do...while循环等等,那么我们为什么需要循环操作呢?...当然还有很多其他地方需要循环操作,这里只是举个例子。 所以,循环操作是计算机编程语言中必不可少的组成部分,那么请大家用几秒钟时间回想一下,我们之前曾经写过的循环操作for循环while循环。...那么传统的for循环while循环就无法发挥他们的作用了,这个时候我们就应该引入”迭代器“了。...例外的时候停止罢了。...return关键词被yield取代了 2, 当调用这个“函数”的时候,它会立即返回一个迭代器,而立即执行函数内容,直到调用其返回迭代器的next方法是才开始执行,直到遇到yield语句暂停。

    87510

    技术 | Python从零开始系列连载(十九)

    生成器 还记得在迭代器里我们说为什么将列表转为迭代器么?...) 生成器属于迭代器,所以肯定是可迭代对象啦~ 3 使用for循环调用生成器 我们使用next()去遍历生成器的时候,我们不知道什么时候会结束 而结束后再使用next()会抛出异常 因为生成器属于迭代器...这是为什么呢? 6 send()退化为next() 小红:老师,想了两天终于想到了! 哦?...这个嘛,是可以的!小明你试试! 小明:大家都退后!要装逼了! ? 小明:传参数竟然不行!!! 小明啊,应该是这样的! ? 传入None才对! 小明:不服!...我们来看这个程序,先定义了两个生成器(不是函数哦~原因在之前课程讲过) 当我们在while主程序中,先使用f1.

    51030

    上手python之while循环和for循环

    while循环语句 只要条件满足 会无限循环执行  小美心软,只要表白100次,就会成功 print("小美,喜欢你") print("小美,喜欢你") print("小美,喜欢你") ......使用循环语句简单搞定  i = 0 while i < 100: print("小美,喜欢你") i += 1 1. while的条件需得到布尔类型,True表示继续循环,False...需要设置循环终止的条件,如i += 1配合 i < 100,就能确保100次后停止,否则将无限循环 3....规范上:不允许 实际上:可以 for循环的变量作用域 回看for循环的语法,我们会发现,将从数据集(序列)中取出的数据赋值给:临时变量 为什么是临时的呢?...这种限定: 是编程规范的限定,而非强制限定 遵守也能正常运行,但是建议这样做 如需访问临时变量,可以预先在循环外定义它 continue和break关键字控制循环  思考:无论是while循环或是

    1.5K10

    为什么要有一个线程来将结束的线程移除出执行区?转移线程的时候要判断线程是否为空遍历线程的容器会抛出ConcurrentM

    ,抛出异常和处理异常也会浪费时间 而且不知道为什么,如果判断的话,会发生阻塞 想了想,想到了一个不靠谱的解释: 在主线程提交线程给executor之前,executor一直在把空的线程丢进执行区...上进行迭代时,通常不允许另一个线性修改该* Collection*。...通常在这些情况下,迭代的结果是不确定的。...API很粗暴的,只要循环体中或者迭代器中,遍历的是Collection的时候,就会直接抛出这个异常 所以当开发的时候,没有对容器线程做出修改,那么直接处理忽视掉这个异常吧 线程一定要适当的yield...,只是运行的慢一点而已 主线程不能轻易的修改执行优先级 发现,当把主线程(main线程)的优先级改到最低或者较低,很容易出现阻塞 这是为什么捏??

    1.1K60

    第四章3:while 循环

    正在以推文形式连载出来,欢迎学习。 星期三:while循环 今天我们将讨论另一种循环——while循环。昨天我们看到了循环的工作原理,以及为什么要使用for循环。...让我们来看下面这个例子: # 写下你的第一个while循环 health = 10 while health > 0: print(health) health -= 1 # 丢失这一行将会使结果一直循环下去...For 虽然,在之前已经多次解释了我们使用每个循环类型的原因,但是,再次重申这些概念仍然是有必要的。当需要计数或迭代时,通常使用for循环。在执行基于条件的操作时,通常使用while循环。...---- 无限循环 在之前的章节中,曾提到无限循环是不好的。无限循环将使代码持续运行直到程序中断,或计算机关机或时间停止为止。知道了这些后,在我们创建项目时,请一定要避免创建无限循环的代码块。...---- ---- 今天是短短的一天,因为循环概念不论对于while循环还是for循环都是相同的。但请记住,while循环用于条件循环,而for循环则用于进行计数/迭代

    1.5K20

    Python教程第4章 | 条件语句、循环语句和函数

    如果是这个需求,个人还是不太建议这样使用 if 嵌套的,因为这样代码量多了,而且嵌套太多,也不方便阅读代码。 二、循环语句 1、什么是循环语句 一般编程语言都有循环语句,为什么呢?...这里又有一个问题了,如果想让他运行了一百次之后停止,那该怎么做呢?...pass 是空语句,是为了保持程序结构的完整性 这些控制语句是为了让我们告诉程序什么时候停止,什么时候运行这次循环。...比如 range(0,10,2) , 它的意思是:从 0 数到 10(取 10 ),每次间隔为 2 。 4、While 循环语句 While 循环和 for 循环的作用是一样的。...那什么时候才使用 for 循环while 循环呢? for 循环主要用在迭代迭代对象的情况。 while 循环主要用在需要满足一定条件为真,反复执行的情况。

    96110

    闲聊数据结构之list

    为什么有了for循环,还需要while循环?...在python中,for循环可以用在很多地方,例如序列是根据下标来访问的,字典是根据键来访问的,也可以根据值来进行迭代,在for循环中,使用的各种可迭代的对象,只是一种值得迭代方式而已。。。...而while循环则不同,必须有个判断条件,也就是结果为True或者False,while循环可以实现无限循环,而for不行,while循环还能实现计数循环,然后break跳出循环,这种for也是可以实现的...风言风语 为啥上班总感觉没脑子呢。。。放在家里了?Emmm。。。没有过,也没见过。。。哈哈 为什么不想要的失去之后,还会念念不忘呢?是因为没找到更好的替代?...这个内存又再次申请,又再次迁移数据,再次释放空间。。。耗费资源。。。像不像CPU切换,但是CPU切换无所谓啊,进程反正要等待IO,切换就切换咯。。。 那么连续?用链表的方式?。。。

    42250

    如果你不改需求还能做朋友 不然就死给你看

    如果按照这个顺序来,就会发生错误,我们来看看 ? 顺序错误 我们使用变量的顺序,一般是首先声明变量,再去使用变量,而如果你改变这个顺序的话,先使用,再声明,使用的时候就会报错。...然后就是交集的问题,为什么45岁还是小鲜肉?...这里直接在打印的地方写了迭代语句,迭代语句的作用就是改变初始化条件,让它用新的值进行下一次循环。 好吧,知道,这个动态过程用语言来描述是苍白无力的,那我们动起来吧。 ? 循环过程 WTF?...false,停止循环。...do-while 其实如果理解了 while 循环,再看do-while,感觉是差不多的,值得注意的是while会先判断条件再执行代码,条件不过关执行,而do-while会先执行再判断,即使不满足条件也非要执行一次

    57051

    一不小心就让Java开发者踩坑的fail-fast是个什么鬼?

    其实,这是一种理念,fail-fast就是在做系统设计的时候先考虑异常情况,一旦发生异常,直接停止并上报。...我们使用jad工具,对编译后的class进行反编译,得到以下代码: System.out.println(userNames); 可以发现,foreach其实是依赖了while循环和Iterator实现的...expectedModCount表示这个迭代器预期该集合被修改的次数。其值随着Itr被创建而初始化。只有通过迭代器对集合进行操作,该值才会改变。...关于如何解决这种问题,我们在《为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作》中介绍过,这里不再赘述了。...,在遍历期间原集合发生的修改迭代器是不知道的。

    89820

    PHP中 yield生成器处理大数据文件、性能优化很有用

    很多PHP开发者或许都不知道生成器这个功能,可能是因为生成器是PHP 5.5.0才引入的功能,也可以是生成器作用不是很明显。但是,生成器功能的确非常有用。...函数内包含一个for循环,我们循环的把当前时间放到data里面 for循环执行完毕,把data返回出去。 下面没完,我们继续。我们再写一个函数,把这个函数的返回值循环打印出来: <?...但是为什么第一次没有间隔?那是因为: 未使用生成器时:createRange函数内的for循环结果被很快放到$data中,并且立即返回。所以,foreach循环的是一个固定的数组。...foreach可以对该对象进行迭代,每一次迭代,PHP会通过Generator实例计算出下一次需要迭代的值。这样foreach就知道下一次需要迭代的值了。 而且,在运行中for循环执行后,会立即停止。...等待foreach下次循环时候再次和for索要下次的值的时候,for循环才会再执行一次,然后立即再次停止。直到不满足条件执行结束。

    1.4K40

    PHP中被忽略的性能优化利器->生成器

    如果是做Python或者其他语言的小伙伴,对于生成器应该陌生。但很多PHP开发者或许都不知道生成器这个功能,可能是因为生成器是PHP 5.5.0才引入的功能,也可以是生成器作用不是很明显。...但是为什么第一次没有间隔?那是因为: 未使用生成器时: createRange 函数内的 for 循环结果被很快放到 $data 中,并且立即返回。所以, foreach 循环的是一个固定的数组。...首先调用 createRange 函数,传入参数10,但是 for 值执行了一次然后停止了,并且告诉 foreach 第一次循环可以用的值。...foreach 可以对该对象进行迭代,每一次迭代,PHP会通过 Generator 实例计算出下一次需要迭代的值。这样 foreach 就知道下一次需要迭代的值了。...而且,在运行中 for 循环执行后,会立即停止。等待 foreach 下次循环时候再次和 for 索要下次的值的时候,循环才会再执行一次,然后立即再次停止。直到不满足条件执行结束。

    83030
    领券