Как принудительно завершить итерацию цикла for (не останавливая цикл for)? - PullRequest
0 голосов
/ 10 апреля 2019

Это может быть глупый вопрос, но здесь идет. Есть ли способ принудительно завершить итерацию цикла 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, тогда как я просто хочу завершить эту конкретную итерацию.

Спасибо за помощь, спасибо.

1 Ответ

0 голосов
/ 10 апреля 2019

Похоже, вы ищете ключевое слово continue.Вот пример из W3Schools :

for (i = 0; i < 10; i++) {
  if (i === 3) { continue; }
  text += "The number is " + i + "<br>";
}

Здесь - это линк, чтобы попробовать код самостоятельно.

Но сделав шаг назад, эточувствует себя как ущербный дизайн.Если вы хотите, чтобы пользователь нажал клавишу, вам не нужно использовать кучу операторов if.Вы можете просто использовать переменную key.Из справки P5.js :

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);
}
...