问题标签 [while-loop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
13 回答
4579 浏览

language-agnostic - 循环中的最后一个元素是否值得单独处理?

在复习的时候,有时会遇到这样的循环:

然后我问一个问题:你会写这个吗?

在我看来,这超出了编写循环的意图:你循环是因为每个元素都有一些共同的事情要做。使用此构造,您可以对某些元素执行不同的操作。因此,我得出结论,您需要为这些元素创建一个单独的循环:

现在我什至在 SO 上看到了一个关于如何以if一种好的方式编写 - 子句的问题......我很伤心:这里有些不对劲。

我错了吗?如果是这样,那么在编码时将循环体与特殊情况混在一起有什么好处?

0 投票
3 回答
3445 浏览

perl - Perl:while ($key = each %hash) 不会在 key = 0 处停止

显然,我不需要这个;我只是好奇这里发生了什么。我错过了一些简单的东西吗?我可以在所有版本的 Perl 中依赖这种行为吗?)

Perl v5.8.8:

输出

man perlfunc(each) 没有解释为什么当$k分配为 0 时 while 循环继续。代码表现得好像while循环上的条件是($k = each %h, defined $k)

如果循环条件实际更改为, ($k = each %h, $k)那么它确实会$k = 0按预期停止。

它还停留在$k = 0以下重新实现each

只输出:

0 投票
31 回答
19381 浏览

language-agnostic - 测试循环在顶部还是底部?(同时与做同时)

当我在大学(80 年代中期)学习 CS 时,不断重复的想法之一是始终编写循环测试在顶部(while...)而不是底部(do ...while)环形。这些概念经常得到研究参考的支持,这些研究表明,在顶部测试的循环在统计上比底部测试的循环更可能是正确的。

结果,我几乎总是编写在顶部进行测试的循环。如果它在代码中引入额外的复杂性,我不会这样做,但这种情况似乎很少见。我注意到一些程序员倾向于几乎专门编写在底部进行测试的循环。当我看到如下结构时:

或者相反(if在内部while),这让我想知道他们是否真的是这样写的,或者if当他们意识到循环没有处理空情况时他们是否添加了语句。

我已经进行了一些谷歌搜索,但无法找到有关此主题的任何文献。你们(和女孩)如何编写循环?

0 投票
12 回答
15499 浏览

refactoring - 可怕的 While (True) 循环的最佳重构

如果像我一样,你在 While (True) 循环的位置发抖,那么你也一定已经思考了很长时间并努力考虑重构它的最佳方法。我见过几种不同的实现,没有一个比其他的更好,例如计时器和委托组合。

那么,您想出或看到重构可怕的 While (True) 循环的最佳方法是什么?

编辑:正如一些评论所述,我的意图是让这个问题成为“无限循环”重构,例如运行 Windows 风格的服务,其中唯一的停止条件是 OnStop 或致命异常。

0 投票
6 回答
907 浏览

c# - C#:尝试一个简单的项目

我是 C# 新手。我想做一个带有某种循环的简单程序。我希望我的程序循环遍历用户输入的数字,如果它小于一个数字,然后继续猜测,但是一旦他们输入数字 25,我希望它说圣诞快乐.. 请帮助

C# 初学者

0 投票
7 回答
69769 浏览

c - 如何用 C 预处理器编写一个 while 循环?

我从教育/黑客的角度问这个问题,(我真的不想这样编码)。

是否可以仅使用C预处理器指令实现 while 循环。我知道宏不能递归扩展,那么这将如何实现?

0 投票
5 回答
1189 浏览

java - 等待字符串相等的正确方法

在 Swing 应用程序中,只有在用户输入正确答案后才能继续执行方法。正确答案存储在一个String用户答案由一个听众设置另一个String。所以,代码是

这种方法一切正常还是你会以某种方式重构它?它不会对CPU施加额外的惩罚吗?这是一个有点类似的问题

0 投票
5 回答
222603 浏览

python - 如何停止 While 循环?

while loop在一个函数中写了一个,但不知道如何停止它。当它不满足其最终条件时,循环就永远进行下去。我怎样才能阻止它?

0 投票
13 回答
28490 浏览

java - Java while 循环和线程!

我有一个程序可以不断地轮询数据库以了解某些字段的值的变化。它在后台运行,当前使用 while(true) 和 sleep() 方法来设置间隔。我想知道这是否是一个好习惯?而且,有什么更有效的方法来实现这一点?该程序旨在始终运行。

因此,停止程序的唯一方法是在进程 ID 上发出终止命令。该程序可能处于 JDBC 调用的中间。我怎样才能更优雅地终止它?我知道最好的选择是通过使用将由线程定期检查的标志来设计某种退出策略。但是,我想不出改变这个标志值的方法/条件。有任何想法吗?

0 投票
22 回答
91618 浏览

while-loop - while (true) 是否具有坏的编程习惯?

我经常使用这种代码模式:

另一位程序员告诉我,这是不好的做法,我应该用更标准的替换它:

他的理由是,您可能太容易“忘记休息”并陷入无休止的循环。我告诉他,在第二个例子中,你可以很容易地放入一个永远不会返回 true 的条件,所以很容易有一个无限循环,所以两者都是同样有效的做法。

此外,我通常更喜欢前者,因为当您有多个断点(即退出循环的多个条件)时,它使代码更易于阅读。

任何人都可以通过为一方或另一方添加证据来丰富这一论点吗?