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

为什么我看到人们在无限循环中使用for(;;)而不是while(1)?

人们在无限循环中使用for(;;)而不是while(1)的原因是因为for(;;)更加简洁和直观,同时也更符合编程的惯例和习惯。

for(;;)是一种常见的无限循环写法,它的三个表达式都为空,因此可以实现一个永远不会结束的循环。这种写法简洁明了,没有任何条件判断,更容易理解和阅读。

而while(1)则需要在循环体内部添加一个条件判断语句,通常是判断一个变量是否为1,以决定是否继续循环。这种写法相对繁琐,需要额外的条件判断语句,增加了代码的复杂性和阅读难度。

在实际开发中,无限循环通常用于需要持续执行某些任务的场景,比如服务器的主循环、消息处理等。使用for(;;)可以更加清晰地表达出这种意图,而while(1)则可能会让人产生一些困惑。

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

  • 腾讯云函数(云原生、服务器运维):https://cloud.tencent.com/product/scf
  • 腾讯云数据库(数据库):https://cloud.tencent.com/product/cdb
  • 腾讯云CDN(网络通信):https://cloud.tencent.com/product/cdn
  • 腾讯云安全产品(网络安全):https://cloud.tencent.com/solution/security
  • 腾讯云音视频处理(音视频、多媒体处理):https://cloud.tencent.com/product/mps
  • 腾讯云人工智能(人工智能):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(物联网):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发(移动开发):https://cloud.tencent.com/product/mobiledk
  • 腾讯云对象存储(存储):https://cloud.tencent.com/product/cos
  • 腾讯云区块链(区块链):https://cloud.tencent.com/product/baas
  • 腾讯云虚拟专用网络(网络通信):https://cloud.tencent.com/product/vpc
  • 腾讯云容器服务(云原生):https://cloud.tencent.com/product/ccs
  • 腾讯云游戏多媒体引擎(音视频、多媒体处理):https://cloud.tencent.com/product/gme
  • 腾讯云智能图像处理(多媒体处理):https://cloud.tencent.com/product/tiip
  • 腾讯云物联网通信(物联网):https://cloud.tencent.com/product/iotcc
  • 腾讯云移动推送(移动开发):https://cloud.tencent.com/product/tpns
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么 Linux 上使用 exa 不是 ls?

我们生活在一个繁忙的世界里,当我们需要查找文件和数据时,使用 ls 命令可以节省时间和精力。但如果不经过大量调整,默认的 ls 输出并不十分舒心。...当有一个 exa 替代方案时,为什么要花时间眯着眼睛看黑白文字呢? exa 是一个常规 ls 命令的现代替代品,它让生活变得更轻松。这个工具是用 Rust 编写的,该语言以并行性和安全性闻名。...它使用颜色来区分文件类型和元数据。它能识别符号链接、扩展属性和 Git。而且它体积小、速度快,只有一个二进制文件。 跟踪文件 你可以使用 exa 来跟踪某个 Git 仓库中新增的文件。...image.png 相信 `exa 是最简单、最容易适应的工具之一。它帮助我跟踪了很多 Git 和 Maven 文件。...它的颜色编码让更容易多个子目录中进行搜索,它还能帮助我了解当前的 xattrs。

1.9K40

应用开发为什么选择 Flutter 不是 React Native ?

作为一位开发人员,想在本文中与大家聊聊跨平台开发领域的两大核心选项——Flutter 与 React Native 框架,并介绍自己为什么更偏爱 Flutter。...为什么更倾向于 Flutter 一段时间以来,React Native 一直是全球领先的跨平台开发框架。而且 Flutter 出现之前,React Native 可谓无可匹敌。...开发高性能应用 应用性能方面,Flutter 同样明显领先于 React Native。几乎所有性能测试,Flutter 的性能都比 React Native 更好。...React Native 需要使用格拉器或中间件才能通过 JavaScript 与原生组件进行通信, Flutter 则完全不需要。这不仅可以加快开发速度,更可以优化运行速度。...例如,使用 Flutter 时,应用动画的运行速率可以达到每秒 60 帧。 对于混合应用开发,将代码、原生组件以及库集成至新架构时,React Native 会带来更高的复杂性。

3.2K20

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

前言最近逛 CSDN 看到一篇文章,文章大意是说为什么循环中不推荐使用 sleep 操作,原因在于线程挂起和唤醒会有很大的性能消耗,并推荐使用 Timer 及 ScheduledExecutorService...sleep 可能会导致忙等待 // 如 FLAG 变量状态未改变 那么线程可能一直循环,并不断进行线程挂起和唤醒原因是否正确主要原因和原文博主所说有很大的关系但不完全正确:我们都知道 Java 线程实际对应着操作系统的一个线程...比如微服务体系,客户端上报实例状态,或者服务端检测客户端状态都会使用定时轮询的机制。...比如一些用户登录场景,当用户登录状态改变时,发送登录事件进行后续处理,比如登录通知等等等待和唤醒等待和唤醒机制一般适用于等待时间较长的场景,因为等待和唤醒是一个性能消耗比较大的操作;等待时间不是很长的场景可以使用轮询机制...此外,将分享最新的互联网和技术资讯,以确保你与技术世界的最新发展保持联系。期待与你一起技术之路上前进,一起探讨技术世界的无限可能性。 保持关注的博客,让我们共同追求技术卓越。

74930

第四章3:while 循环

正在以推文形式连载出来,欢迎学习。 星期三:while循环 今天我们将讨论另一种循环——while循环。昨天我们看到循环的工作原理,以及为什么使用for循环。...当你需要根据条件不是计数循环时,通常使用while循环。今天我们将讨论基于条件的循环。...For 虽然,之前已经多次解释了我们使用每个循环类型的原因,但是,再次重申这些概念仍然是有必要的。当需要计数或迭代时,通常使用for循环执行基于条件的操作时,通常使用while循环。...---- 无限循环 之前的章节曾提到无限循环是不好的。无限循环将使代码持续运行直到程序中断,或计算机关机或时间停止为止。知道了这些后,我们创建项目时,请一定要避免创建无限循环的代码块。...while循环只有条件变量game_over为True时,才会停止循环输出结果只有0,1,2。 ---- 小提示:使用break语句,防止程序陷入无限循环

1.5K20

疫情之下,循环之路开启

这里是不是有很多个式子相加,那么我们该如何把这些式子写到程序呢? 这里我们就需要请三位老大来掌控局面了,为什么是三位呢?我们在数组那里是不是提到过老大,那里只有一个老大,这里为啥有三个呢?...当考虑算法功能(不是其语言实现)时,伪代码常常得到应用。计算机科学在教学通常使用伪代码,以帮助学习者能够快速并透彻地理解。...为什么怎么说呢,因为它好用嘛,对不对,因为好用才经常出现在C语言的代码。...并且还有如下九种用法: 可以使用递减运算符来递减计数器 可以让计数器递增2,10等 可以用字符代替数字计数 除了测试迭代次数外,,还可以测试其他条件 可以让递增的量几何增长,不是算术增长 第三个表达式可以使用任意合法的表达式...还有就是许多应用,要求一开始不满足测试条件时就直接跳过整个循环。 我们平常用得最多的还是入口条件循环,那么入口条件循环中我们该如何选择是使用for语句还是while语句呢?

64130

#7 Python顺序、条件、循环语句

Python,条件语句使用 if......else.........条件为真,执行 条件为真,执行 条件为真,执行 条件为真,执行 条件为真,执行 条件为假,该执行了 输出结果 无限循环Python使用 while True: 循环内容 即可实现无限循环...0 1 2 0 1 2 0 1 2 输出结果 以上就是循环的嵌套,实际运用应该灵活使用循环的嵌套,往往会带来事半功倍的效果!...正在循环 正在循环 正在循环 正在循环 要跳出循环啦 输出结果 由上面代码可以看到循环过程中一但遇到break,就会跳出此循环,即使是无限循环也不顶用 Continue 继续循环,也成为跳过本次循环...,循环过程,遇到continue,会跳过本次循环,继续下一次循环,看例: 1 num = 0 2 3 while num < 5: 4 num += 1 5 if num > 3:

1.4K20

兄dei,你被代码死循环坑了吗?

1.一般循环遍历 这里说的一般循环遍历主要是指: for语句 foreach语句 while语句 这三种循环语句可能是我们平常使用最多的循环语句了,但是如果没有用好,也是最容易出现死循环的问题的地方。...很多朋友看到这里,心想这种错误肯定不会犯的。不过需要特别说明的是,这里举的例子相对来说比较简单,如果i>10这里是个非常复杂的计算,还真说不准一定不会出现死循环。...1.2 不正确的continu for语句循环遍历数组和list时更方便,while语句的使用场景却更多。...3.类中使用自己的对象 有时候,某个类把自己的对象定义成成员变量,不知道你有没有这样做过。 有些可能会很诧异,为什么要这么做。...个人非常喜欢使用HashMap,特别是java8需要嵌套循环的地方,将其中一层循环的数据(list或者set)转换成HashMap,可以减少一层遍历,提升代码的执行效率。

2.1K20

【python系统学习09】while循环

也就是for特定循环次数内,在你指定循环次数的情况下进行的迭代。 while是你可以指定一个已经确定的临界值,只要在临界值里边的,都会执行while。...的人机对话过程 只要用户输入的不是20,这个循环while子句的内容就会一直执行。 当用户输入20时,条件不成立(myAge=20,不是!=20),则跳出循环。执行else内容。...无限循环 利用while,我们还可以写一段死循环代码。 1# 请谨慎尝试! 2while True: 3  print('停不下来了~') 条件语句那里,可以填表达式,同样也可以填写布尔值。...循环永远不停,就形成了我们常说的死循环代码。 continue跳过本次循环 同for,continue语句while使用作用一样是跳出本次单轮的循环、继续下次的循环。...break跳出循环 同for,break语句while使用作用一样是跳出循环

1.1K20

Python入门教程笔记(二)控制语句

这里有几个需要注意的地方: 可以看到print('抱歉,考试不及格')这行代码明显比上一行代码缩进了,这是因为这行代码是if判断的一个子分支,因此需要缩进,Python规范,一般使用4个空格作为缩进...比如: while True: print(1) 在上述代码,由于while的条件一直为True,所以这个代码将会无限的输出1,这个可不要轻易尝试。...比如在前面的无限循环里面,只要在恰当的时机,我们使用break跳出循环,也可以求出1~100的和。...(sum) 同样的,对于字符串s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',假如希望输出s的前20个字符,不是所有字符,我们也可以使用break。...',假如希望输出字符串s第10个以后的字符,不是所有字符,这个时候, 我们可以使用continue跳过前面的9个字符。

42720

这六种原因,真能让 Java 应用 CPU 使用率飙升至 100% 吗?

点击上方“码农沉思录”,选择“设为星标” 优质文章,及时送达 问题 1无限循环while会导致CPU使用率飙升吗? 2、经常使用Young GC会导致CPU占用率飙升吗?...人们常说,计算密集型程序的CPU密集程度更高。 那么,JAVA应用程序的哪些操作更加CPU密集?...现在,分时操作系统使用循环方式为进程调度分配时间片。如果进程正在等待或阻塞,那么它将不会使用CPU资源。线程称为轻量级进程,并共享进程资源。因此,线程调度CPU也是分时的。...但在Java,我们使用JVM进行线程调度。因此,通常,线程调度有两种模式:时间共享调度和抢占式调度。 答案 1while无限循环会导致CPU使用率飙升吗? 是。...整编:微信公众号,搜云库技术团队,ID:souyunku stackoverflow也提出了这个问题:为什么无意的无限循环增加了CPU的使用

16.1K20

盘点.NET JITRelease下由循环体优化所产生的不确定性Bug

for和while语法上有所不同,但最终执行表现是相同的,因此,为了后面的例子中所展示的逻辑更直白,对于循环的语法,使用do while来描述。...第二段已经举例介绍了这种优化,这取决于JIT是否能跟踪到代码对变量i的更改,若JIT通过中间形式解析后能够跟踪到对循环变量的修改,则对循环变量将不会使用寄存器来进行优化。...ptr [ecx+4], 0x80000000 本例,因为JIT没能跟踪到委托循环变量,最终取i的地址和在委托的闭包设置的i的地址不是同一个位置,因此会产生无限轮训。...之所以会出现这样的情况,这是因为JIT会对小的stackalloc分配代码(本例是8个字节)进行内联,我们可以Release下看到Test1方法循环外只进行一次0初始化,不是每次调用Test方法并在...给出了几个参考: 如果逻辑允许的话,尽可能的将stackalloc提出循环使用同等宽度字节进行初始化不是stackalloc,如 long 使用Span去创建Stackalloc,且通过Span.Clear

61520

Python for死循环

循环 循环是指重复执行一段代码若干次,为什么要有循环?因为循环可以避免大量的代码重复。 死循环 当一个循环可以执行无限次,也就是没有终止条件,我们称这个循环是死循环。...是一个可迭代对象,不是真的序列对象。...终止条件是一个无限大的整数 Python里面表示无限大的数是使用float('inf')(无限大的小数),只要再用int去转换一下不就是无限大的整数了吗?继续用代码实现一下,看看是不是真的能行。...可能是因为for i in range的i和i = 0的i不是同一个i,是不是同一个可以通过使用id这个内置函数查看内存地址就行。不要只知其然,还要知其所以然! ? 为什么会选择从300开始循环?...0 1 2 3 4 5 ……它会无穷无尽的迭代下去,但是迭代到后来依旧会爆内存,因为Python没有数据越界,C语言里面都说整数int占用了四个字节,Python里面就不是这样了,看下面一个例子,两个数同样是

9.8K20

每日一题:LeetCode-202.快乐数(一点都不快乐)

然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 。 如果这个过程 结果为 1,那么这个数就是快乐数。 如果 n 是 快乐数 就返回 true ;不是,则返回 false 。...是1就快乐数,不是1不是快乐数。   知道你还有疑问:“为什么就这两种情况呢?循环会不会是无限不相等的循环?”   ...可以看到,当为2时就是一个循环,当为19时最后就能得到1,所以19为快乐数,2不是快乐数,但是最让人不快乐的地方在于会不会存在无限循环?   ...1、其实我们仔细观察不难发现,给了我们一个数,我们就一定能推出来下一个数,下一个数就一定能推出来下下个数…而且所推的数是固定的不变的,这种关系是不是就像我们的链表关系?...没错,我们使用的是双指针法来解决带环链表的问题。

6310

超强图文|并发编程【等待通知机制】就是这个feel~

聪明的人就想到了 等待/通知 机制 等待/通知机制 无限循环实在太浪费CPU,理想情况应该是这样: 柜员A如果拿不到所有账本,就傲娇的不再继续问了(线程阻塞自己 wait) 柜员B归还了柜员A需要的账本之后就主动通知柜员...【程序解释】一列,将关键字(排队、锁、等待、释放....)已经用 【】 框了起来。...至于坑二,是线程归还所使用的账户之后使用 notify 不是 notifyAll 进行通知,由于坑很大,需要一些知识铺垫来说明 为什么说尽量使用 notifyAll notify() 和 notifyAll...另外也知道如何正确的使用通知/等待机制了 灵魂追问 钱庄转账的业务,条件都是判断账户是否被支配,都是执行相同的转账业务,为什么就不可以用notify() 只能用notifyAll() 呢 ResourceA...这面也逐步总结常见的并发面试问题(总结ing......)答案整理好后会通知大家,请持续关注 ?

48810

lodash源码分析之自减的两种形式

——村上春树《当我谈跑步时谈些什么》 本文为读 lodash 源码的第六篇,后续文章会更新到这个仓库,欢迎 star:pocket-lodash gitbook也会同步仓库的更新,gitbook地址...作用与用法 assocIndexOf 是 lodash 的内部函数,之前《lodash源码分析之Hash缓存》介绍过一种这样的数据结构: var caches = [['test1', 1],['test2...(caches, 'test1') // -1 可以看到,改了之后,只影响到了第一项的结果,也就是终止条件有问题,根本没有遍历到第一项,但是后面的结果是正确的,也就说循环体里的 length 没有受到影响...你可能会有点疑惑,while 的终止条件比较的不是 length 吗?为什么 length-- 正确, --length 不正确呢?...因此使用 length-- ,最后一次进入循环体应该在 length 等于 1 的时候。

78760

哈希——202. 快乐数

然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 如果这个过程 结果为 1,那么这个数就是快乐数。...我们怎么知道它会继续变大,不是最终得到1呢?我们可以仔细想—想,每—位数的最大数字的下一位数是多少。 对于3位数的数字,它不可能大于243。这意味着它要么被困在243以下的循环内,要么跌到1。...但它不会无限期地进行下去,所以我们排除第三种选择。 即使代码你不需要处理第三种情况,你仍然需要理解为什么它永远不会发生,这样你就可以证明为什么你不处理它。...按照—系列的数字来判断我们是否进入了一个循环。 第1部分我们按照题目的要求做数位分离,求平方和。 第⒉部分可以使用哈希集合完成。每次生成链的下一个数字时,我们都会检查它是否已经哈希集合。...我们使用哈希集合不是向量、列表或数组的原因是因为我们反复检查其中是否存在某数字。检查数字是否哈希集合需要O(1)的时间,而对于其他数据结构,则需要O(n)的时间。

23520
领券