2015-02-19 3 views
-1

Я использую функцию и цикл в JavaScript.Функция и петля в JavaScript

var i; 
var result = ''; 
function candy(x) { 
    for (i = 0; i <= 2; i++) { 
    console.log(x + " candy. Take 1, " + (x - 1) + " candy."); 
    } 
    return result += i; 
} 
candy(4); 

Выход:

"4 candy, Take 1 down, 3 candy" 
"4 candy, Take 1 down, 3 candy" 
"4 candy, Take 1 down, 3 candy" 
"3" 

Мой ожидаемый результат:

"4 candy, Take 1 down, 3 candy" 
"3 candy, Take 1 down, 2 candy" 
"2 candy, Take 1 down, 1 candy" 

Я пропускаю что-то в моем цикле? Любое предложение? Спасибо!

+6

Вы никогда не обновляете 'x' внутри своей петли, поэтому он остается с тем же значением. Попробуйте 'x -;' после строки 'console.log' –

+0

О, ничего себе, я полностью забыл. Спасибо огромное! – BBKay

+1

Потому что вы сделали x-1 ..., который будет печатать только значение, не сохраняя его внутри переменной x. –

ответ

0

В вашем цикле вы используете (x - 1), его нужно изменить на (x - i). Теа причина заключается в том, что х инициализируется до 4. Каждый раз, когда проходит цикл, он выдает 4 - 1. Если вы используете (х - я), это будет декремента каждый раз, когда ... Попробуйте следующий код:

var i; 
var result = ''; 
function candy(x) { 
    for (i = 0; i <= 2; i++) { 
    console.log(x + " candy. Take 1, " + (x - i) + " candy."); 
    } 
    return result += i; 
} 
candy(4); 

Если вы намерены УДАЛИТЬ конфету, используйте x--; в вашей петле.

var i; 
var result = ''; 
function candy(x) { 
    for (i = 0; i <= 2; i++) { 
    console.log(x + " candy. Take 1, " + (--x) + " candy."); 
    } 
    return result += i; 
} 
candy(4); 
Смежные вопросы