Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <script src="https://zero.p2p.shpp.me/console.js"></script>
- <script>
- /* Задача про найбільше число.
- знайти найбільше число із чисел,
- які вводить користувач (припинити приймати числа, коли він введе 0)
- не враховувати непарні числа
- (прочитати про команду взяття залишку від ділення - %)
- */
- let flag = true //подумала что будет лучше с флагом потому что его значение потом меняется.
- /* ви праві, такі булеві змінні мають загальну назву прапори, і кожній можна давати зручне іменування,
- для таких змінних звичні іменування починаються з is.. has.. etc. У вашому коді може іменуватися isZeroEntered або isExit та тоді початкове значення буде false - прапор спущений, а умова буде while (!isExitRequired)*/
- let i = 0 // наче не використовуєте, є таке правило, щоб змінні об'являти якомога ближче до місця їх використання.
- let numberArr = [] // масиви краще іменувати у множині по вмісту: numbers
- let maxElement = 0
- while (flag) {
- let number = +prompt("Введите число") // Ввод пользователем чисел в цикле
- if (number === 0) {
- flag = false
- }
- if (number % 2 === 0) {
- numberArr[i] = number
- i++
- }
- }
- console.log("Длина массива:" + numberArr.length)
- for (let i = 0; i <= numberArr.length - 1; i++) { // for (let i = 0; i < numberArr.length; i++)
- console.log(numberArr[i]) //вывод элементов массива
- if (numberArr[i] > numberArr[i - 1]) { // тут треба порівнювати з максимальним, а не з попереднім.
- maxElement = numberArr[i]
- }
- }
- console.log("Максимальное число: " + maxElement)
- //Вопросы:
- //1. Бесконечные циклы? Применяются они или нет ? буває, але ваш не належить до таких. while (true) - це бескінечний.
- // Если нет то какое условие можно было бы поставить в данном цикле? Или мой вариант вполне реален?
- /* для такої умови, коли треба щось вводити і від цього залежить чи виходити з циклу, зручно використати цикл do .. while
- Його відмінність в тому, що його тіло завжди виконається щонайменш одного разу, і в ньому можна приймати ввод від користувача, щось таке */
- let userEntered;
- do {
- userEntered = prompt('Enter smth');
- } while (userEntered !== '0')
- //Я подумала что можно числа которые вводит пользователь, записывать в массив, - можна, якщо вони потрібні надалі.
- // и уже в массиве искать максимальное число, /** можна і так, а можна і одразу при вводі, для цього треба лише порівняти нове із максимальним, і якщо воно більше, то присвоїти його максимальному. */
- //для этого я использовала другой цикл. Уместно ли данное решение или все же надо все в одном цикле?
- // В одном цикле не выводилось максимальное число корректно. // справа у коді, є помилка.
- //что еще добавить в код для корректности? или убрать? или изменить? - вам вирішувати.))
- < /script>
- // Гарного коду.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement