Вот мой полный код (JavaScript):Результат Оператор IF вложен в цикле WHILE путаешь меня (Javascript)
var products = ["Choo Choo Chocolate", "Icy Mint", "Cake Batter", "Bubblegum"];
var hasBubbleGum = [false, false, false, true];
var i = 0;
while (i < hasBubbleGum.length) {
if (hasBubbleGum[i]) {
console.log(products[i] + " contains bubblegum");
}
i = i + 1;
}
Этот код возвращается на консоль:
Bubblegum contains bubblegum
Что меня смущает это IF, вложенный в мой цикл while. Я знаю, что этот код правильный, но я не понимаю, почему он обходит оператор IF, когда hasBubbleGum установлен в FALSE.
Моя первоначальная мысль была, что печать на консоль даст:
Choo Choo Chocolate has bubblegum
Icy Mint has bubblegum
Cake Batter has bubblegum
Bubblegum has bubblegum
Я пропускаю ключевую фундаментальную идею, что если оператор игнорировать логические значения FALSE?
Пожалуйста, покажите нам весь цикл. Мы не видим закрывающие фигурные скобки, поэтому перед ними может быть больше заявлений. В частности, мы не можем видеть, что происходит, если угодно, с вашей индексной переменной 'i'. – BaseZen
IF проверяет, является ли условие истинным или ложным. Поскольку 'hasBubbleGum [0]' false, IF разрешает FALSE и обычно пытается обработать 'else' (который, кажется, отсутствует, ваш код выглядит неполным), поэтому он ничего не делает ... увеличивать счетчик (также не показано, но я предполагаю, что он где-то там), перейдите к следующей итерации. «Выход» показывает только, когда он находит значение TRUE по индексу 4 – Ditto
Прошу прощения. Я полностью забыл закончить цикл в своем сообщении. – jakewies