这可能是一个愚蠢的问题,但这是可行的。有没有办法强制结束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循环,而我只想结束该特定迭代。
感谢所有帮助,谢谢。
答案 0 :(得分:0)
听起来您正在寻找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.
}
即使由于某种原因(例如,如果您想为箭头键显示某些内容)而无法正常工作,解决该问题的方法也可能比在命令行中的if
语句更好。 for
循环。例如,您可以创建从keyCode
到要显示的字符串的映射,然后调用该映射。像这样:
var m = new Map()
m.set(65, 'a');
m.set(66, 'b');
//..
function keyPressed(){
text(m.get(keyCode), 50, 50);
}