Timkor

maxNumber

Sep 10th, 2020 (edited)
804
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Хороший код, хорошие комментарии,хорошая декомпозиция, хороший стиль.
  2. // А раз так, то позволю себе некоторые "придирки", т.к. по сути все сделано правильно и вам надо двигаться далее.)
  3.  
  4. let numb; //переменная объявлена, но не инициализирована значением, т.е. после этой строки в ней undefined, сравнивать ее
  5. // с чем-то кроме undefined не самое лучшее решение, т.к. может привести к неожиданным результатам. Хотя в вашем коде
  6. // все работает ожидаемо, но первый раз условие в вайле проверяет не "не введен ли ноль" а не нулем ли инициализирована
  7. // переменная, т.к. ввод еще не происходил. Возможно несколько решений: использовать do-while, или произвести ввод перед
  8. // сравнением:
  9. // while ((numb = parseInt(prompt("Введите число."))) !== 0)
  10. // Повторюсь: все работает, все хорошо, я высказываю субъективные семантические придирки, и ваше решение не требует        
  11. // исправлений и переосмысливания сейчас. Вы вполне можете пройти остальные темы и успешно сдать вступ.
  12. let max = 0; //
  13.  
  14. while (numb !== 0) {        //не выполнять если введен 0
  15.     numb = parseInt(prompt("Введите парные числа.")); // да пусть вводит любое, вы же отсеиваете нечетные.)
  16.     if (numb % 2 == 1) continue // пропуск непарных // не склеивайте операторы с операндами, пробелы не помешают,          // предпочтительнее использовать строгое равенство, оно не таит сюрпризов связанных с преобразованием типов.
  17. // Семантически: можно инвертировать условие: if (numb % 2 === 0) { тогда выполнять все остальное, и... все,)
  18.  
  19.     if (numb > max) {         // сравнение введеного с 0
  20.         max = numb            // если введенно больше, чем было в max, переписать max
  21.     }
  22.     //console.log(max);    проверка что записывается в max // для отладки программы - супер, но перед релизом (в нашем // случае перед ревью) старайтесь почистить код от всех "служебных" строк.  
  23. }
  24. console.log("Максимальное число: " + max);
  25. // последняя придирка состоит в том, что если пользователь не ввел ни одного четного числа, то вывод скажет, что макс это  
  26. // 0, как-бы да - ноль он вводил, но скорее не как число, а как триггер для выхода, если бы для выхода надо было бы ввести
  27. // например букву Q , тогда бы все равно утверждалось, что максимальное это ноль, а хотелось бы что-то типа "не было введено
  28. // четных чисел". Теперь главное: вы хорошо справились, только в таком случае подобные придирки имеют место быть, отнеситесь
  29. // к ним с пониманием, пожалуйста, и смело идите далее, к вашим целям. Все зависит от вас. Хорошего кода!
  30.  
  31. // отвечая на ваш вопрос про выход по отмене или ескэйпу
  32. // while ((numb = +(prompt("Введите парные числа."))) !== 0 ) {
  33. // если нажаты эти кнопки, то вернется null, (это еще одно хитрое значение , обозначающее отсутствие значения) поэтому      // проверка на undefined не работала. Нужно учесть, что parseInt(null) вернет NaN (not a number), а +(null) вернет 0.
RAW Paste Data