Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подскажите почему не срабатывает цикл for (https://javascript.ru/forum/misc/82536-podskazhite-pochemu-ne-srabatyvaet-cikl.html)

alacka 21.05.2021 16:12

Подскажите почему не срабатывает цикл for
 
Здравствуйте только изучаю js подскажите почему не срабатывает цикл for внутри, тестирую с while все работает нормально


let personalMovieb = {
    movies: {}
}



for (let i = 0; i < 2; i++) {
    let questOne = prompt('Один из просмотренных фильмо', '');

    if (questOne == '') {
        alert('Поле пустое');
        i--;
    } 

    if (questOne != '') { 
        
        for (let count = 0; count < 1; count++) {
            let questTwo = prompt('На сколько оцените его', '');

            if (questTwo == '') {
                alert('Поле пустое');
                count = 0;
            } else {
                alert('Поле не пустое');
                personalMovieb.movies[questOne] = questTwo;
            }
            
        }

    }   

    
}

console.log(personalMovieb.movies);



Это если заменить на while тогда норм все

for (let count = 0; count < 1; count++) {
            let questTwo = prompt('На сколько оцените его', '');

            if (questTwo == '') {
                alert('Поле пустое');
                count = 0;
            } else {
                alert('Поле не пустое');
                personalMovieb.movies[questOne] = questTwo;
            }
            
        }




let count = 0;
while (count < 1) {
            let questTwo = prompt('На сколько оцените его', '');

            if (questTwo == '') {
                alert('Поле пустое');
                count = 0;
            } else {
                personalMovieb.movies[questOne] = questTwo;
                count++;
            }
             
        }

ksa 21.05.2021 17:12

alacka, не совсем понятно зачем тебе вообще циклы for ( ; ; )...
Просто для тренировки?

ksa 21.05.2021 17:17

Цитата:

Сообщение от alacka
почему не срабатывает цикл for внутри

Он работает как ты ему и написал...
- Крутнулся с нулем
- Увеличил счетчик
- Проверил условие 1<1 - оно ложное
- Все. Цикл закончил работу!

ksa 21.05.2021 17:20

Вариант с циклами for ( ; ; ) тут не совсем уместен... Он больше для перечисления...
Но, как вариант

for (let count = 0; count < 1; count++) {
	let questTwo = prompt('На сколько оцените его', '');

	if (!questTwo) {
		alert('Поле пустое');
		count = -1;
	} else {
		alert('Поле не пустое');
	}
}

ksa 21.05.2021 17:22

Или так...

for (let count = 0; count < 1;) {
	let questTwo = prompt('На сколько оцените его', '');

	if (!questTwo) {
		alert('Поле пустое');
	} else {
		alert('Поле не пустое');
		count++
	}
}

alacka 21.05.2021 21:09

Да это больше для тестов

сделал ещё вот так


for (let i = 0; i < 2; i++) {
    let questOne = prompt('Один из просмотренных фильмо', '');

    while (questOne == '') {
        alert('Поле пустое');
        questOne = prompt('Один из просмотренных фильмо', '');
    }

    let questTwo = prompt('На сколько оцените его', '');

    while (questTwo == '') {
        alert('Поле пустое');
        questTwo = prompt('На сколько оцените его', '');
    }

    personalMovieb.movies[questOne] = questTwo;
    
}



все на while немного подругому, оказывается се попроще, а я все усложнял :cray:


спасибо, за примеры

рони 21.05.2021 21:30

alacka,
:-?
let questOne;
    while (!questOne) {
         questOne = prompt('Один из просмотренных фильмо', '');
        questOne || alert('Поле пустое');
    }

    let questTwo;

    while (!questTwo) {

        questTwo = prompt('На сколько оцените его', '');
        questTwo || alert('Поле пустое');
    }
   alert(JSON.stringify({[questOne] : questTwo}));

alacka 21.05.2021 22:57

красиво, но пока не понятно полностью, нужно учить
спасибо


questOne || alert('Поле пустое');


это работает как if ? верно ?

подскажите как поиска в справочниках - ||

рони 21.05.2021 22:59

alacka,
questOne || alert('Поле пустое');

тоже что

if(!questOne ) alert('Поле пустое');

рони 21.05.2021 23:02

alacka,
https://learn.javascript.ru/logical-operators

Цитата:

Если бы первый аргумент имел значение false, то || приступил бы к вычислению второго


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