1

Тема: різниця між i++ та i += 1

Починаю вивчати JS, та не можу зрозуміти чому цій код працює:

function action(arg) {
    console.log("My argument is " + arg);
}

function condition(i, arg) {
    return i < arg;
}

function iteration(i) {
    return i += 1;
}

function loop(arg, condition, action, iteration) {
    let i = 0;
    while (condition(i, arg) === true) {
        action(arg);
        i = iteration(i);
    }
}

loop(5, condition, action, iteration);

а цій ні:

function action(arg) {
    console.log("My argument is " + arg);
}

function condition(i, arg) {
    return i < arg;
}

function iteration(i) {
    return i++;
}

function loop(arg, condition, action, iteration) {
    let i = 0;
    while (condition(i, arg) === true) {
        action(arg);
        i = iteration(i);
    }
}

loop(5, condition, action, iteration);

в чому різниця між i++ та i += 1?

2

Re: різниця між i++ та i += 1

a.chako2012 написав:

в чому різниця між i++ та i += 1?

В тому що і++ означає отримати і а потім збільшити змінну на 1
Для того щоб "працював" другий варіант коду замініть і++ на ++і

++і спочатку збільшить змінну на 1 а потім поверне

Подякували: P.Y., bvn, koala3

3

Re: різниця між i++ та i += 1

І нащо та ітерація?

4 Востаннє редагувалося koala (21.04.2020 07:44:45)

Re: різниця між i++ та i += 1

Трохи поясню, що написав Betterthanyou.

i=5;      // значення i - 5
a=i++;    // значення i - 6, a - 5
b=++i;    // значення i - 7, b - теж 7
c=i=i+1;  // значення i - 8, c - теж 8

Крім того, i в функції iteration - це ІНША i. Можливо, щоб не плутатися, вам варто було б її перейменувати. В функцію передається лише значення, не сама змінна чи посилання на неї.

Подякували: Betterthanyou1