Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Поведение счётчика цикла (https://javascript.ru/forum/misc/18414-povedenie-schjotchika-cikla.html)

Gofop 29.06.2011 18:36

Поведение счётчика цикла
 
Почему:
for(i = 0; i < 5; i++){}
document.write(i) // i == 5 ?


По логике i == 5 при i <= 5 (как в том же Си)

B@rmaley.e><e 29.06.2011 19:05

Цитата:

Сообщение от Gofop
как в том же Си

Щито?
Код:

#include <stdio.h>

int main(){
    int i;
    for(i = 0; i < 5; ++i);
    printf("%d", i); // 5
    return 0;
}

Какая-то неправильная логика у Вас. Цикл прекращается, как только прекращает выполняться условие, а выполняться оно прекращает как раз в случае i == 5.

Gofop 29.06.2011 19:14

C++
Код:

#include <iostream>

int main
{
    for(int i = 0; i < 5; i++)
        std::cout << i << std::endl;

    return 0;
}


Код:

[wz2@localhost ~]$ '/home/wz2/a.out'
0
1
2
3
4

i == 4

Sweet 29.06.2011 19:29

<script>
for(i = 0; i < 5; i++)
  document.write(i + "<br>");
</script>

i == 4???

walik 29.06.2011 19:31

Gofop,
В вашем первом сообщение i == 5 потому что вы смотрите на счетчик уже после цикла. Если же смотреть на i как в сообщение Sweet'a то, все верно (0,1,2,3,4) , потом i становится равным 5 и условие не выполняется, и все, он так и остается равным 5.

Sweet 29.06.2011 19:33

walik, я написал относительно этого.

B@rmaley.e><e 29.06.2011 19:37

Gofop, ололо
Код:

#include <iostream>

int main()
{
    int i;
    for(i = 0; i < 5; i++)
        std::cout << i << std::endl;
    std::cout << "Final: " << i << std::endl;

    return 0;
}

Цитата:

barmaley-exe@laptop:~/cpp$ ./a.out
0
1
2
3
4
Final: 5

Gofop 29.06.2011 22:09

Цитата:

Сообщение от walik (Сообщение 111148)
Gofop,
В вашем первом сообщение i == 5 потому что вы смотрите на счетчик уже после цикла. Если же смотреть на i как в сообщение Sweet'a то, все верно (0,1,2,3,4) , потом i становится равным 5 и условие не выполняется, и все, он так и остается равным 5.

Точно, спасибо)

for(i = 0; i < 5; i++){document.write(i)}


Часовой пояс GMT +3, время: 10:22.