如何强制结束 for 循环的迭代(不停止 for 循环)?
Posted
技术标签:
【中文标题】如何强制结束 for 循环的迭代(不停止 for 循环)?【英文标题】:How to forcefully end an iteration of a for-loop (without stopping the for-loop)? 【发布时间】:2019-04-10 10:34:35 【问题描述】:这可能是一个愚蠢的问题,但这里是。有没有办法强制结束 for 循环的迭代并忽略循环中的所有其他条件语句,然后进行下一次迭代?
我正在尝试制作一个工具,只要用户输入一个字母,它就会被打印到画布上。
我正在使用 for 循环来执行此操作,每次迭代都会使下一个字母每次都向右移动。
在for循环中包含了输入字母的条件语句:
function draw()
function keyPressed()
for(i=0; i<100; i++)
if(keyCode == 65)
text("a", 60 + i*10, 60)
...
...
...
等等等等。但是,这只有在每个字母移动到下一次迭代之后才有效(否则,由于 'i' 没有增加,字母将被打印在同一个地方,使其不可读)。
在每个条件语句的末尾使用“return”对我不起作用,因为“return”结束了整个 for 循环,而我只想结束特定的迭代。
感谢所有帮助,谢谢。
【问题讨论】:
您是否尝试过将其视为一个 while 循环?这样您在按下键时注册输入,而不是运行有限次的 for 循环? @IncrediblePony 感谢您的回复。我确实考虑过使用 while 循环,但主要问题仍然存在。我只能够输入有限数量的单词(100)没有问题。我只需要能够强制跳转到下一个迭代。无论如何谢谢你。 【参考方案1】:听起来您正在寻找continue
关键字。以下是来自W3Schools 的示例:
for (i = 0; i < 10; i++)
if (i === 3) continue;
text += "The number is " + i + "<br>";
Here 是一个可以自己尝试代码的链接。
但退后一步,这感觉像是一个有缺陷的设计。如果你想得到他们用户按下的键,你不必使用一堆if
语句。您可以只使用 key
变量。来自P5.js reference:
function setup()
fill(245, 123, 158);
textSize(50);
function draw()
background(200);
text(key, 33, 65); // Display last key pressed.
即使由于某种原因这不起作用(例如,如果您想为箭头键显示某些内容),也可能有比@987654330 中的一堆if
语句更好的方法来解决这个问题@ 环形。例如,您可以创建从keyCode
到要显示的字符串的映射,然后调用该映射。比如:
var m = new Map()
m.set(65, 'a');
m.set(66, 'b');
//..
function keyPressed()
text(m.get(keyCode), 50, 50);
【讨论】:
以上是关于如何强制结束 for 循环的迭代(不停止 for 循环)?的主要内容,如果未能解决你的问题,请参考以下文章
NodeJS,如何强制异步 for 循环在传递到下一次迭代之前等待 HTTP 请求解决,这样我们就不会收到 EMFILE 错误?
pd.DataFrame 上的 for 循环继续运行,但在 100 次迭代后停止工作