<script>
nextPrime:
for(var i=2; i<10; i++) {
for(var j=2; j<i; j++) {
if ( i % j == 0) continue nextPrime; // КАК ЭТО УСЛОВИЕ НЕ ПРОПУСКАЕТ ЧЕТВЕРКУ
}
alert(i); // простое
}
</script>
скрипт создан, чтобы выводить простые числа из диапозона 2..10, но не могу понять как он работает, ведь условие выполняется, 4%2 == 0? как он ее отсеевает?
не могу понять как работает javascript
Модератор: Duncon
Аа, догнал, метка закрывает весь цикл вместе с alert, поэтому не выводит... Хитро сделано, я просто задачу в инэте нашел, решил я ее подругому, а именно вот так
<script>
var i,j,cop;
for (i = 2; i<30; i++)
{
cop=0;
for (j = 1; j<30; j++)
{if (i%j == 0) {cop++}};
if (cop == 2) {alert(i); continue} else continue;
};
</script>
использую переменную как копилку, чтобы подсчитывать количество делений числа, если не равно двум, то оно не простое, потому что простое делится только на себя или 1. Это плохой стиль программирования?))
<script>
var i,j,cop;
for (i = 2; i<30; i++)
{
cop=0;
for (j = 1; j<30; j++)
{if (i%j == 0) {cop++}};
if (cop == 2) {alert(i); continue} else continue;
};
</script>
использую переменную как копилку, чтобы подсчитывать количество делений числа, если не равно двум, то оно не простое, потому что простое делится только на себя или 1. Это плохой стиль программирования?))
Цикл совершенно спокойно можно начинать с двух: for (j=2; j<i; j++)
И проверять на if (cop==1). Потому что на единицу и так любое число делится.
Хотя в таком раскладе можно обойтись и без этого cop
{ if (i%j==0) continue;
alert (i);
}
И проверять на if (cop==1). Потому что на единицу и так любое число делится.
Хотя в таком раскладе можно обойтись и без этого cop
{ if (i%j==0) continue;
alert (i);
}
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.