Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Задача про банкомат:
- /* прикро те, що код не працює, хоча написаний нормально. Причина тому пропущена фігурна дужка, насправді може бути прикро отримати поламаний проект на проді з неуважності, раджу перевіряти та копіпастити свій перевірений код. Припускаю, що розробляєте у середовищі, що нівелює такі помилки, хоча все одно дивно.
- Ті коменти , що починаються з ** - є суто факультативними, не потребують саме зараз глибокого розуміння.
- */
- let cards = [];
- let sumCards = 0;
- let i = 0;
- while (i < 10) {
- cards[i] = 0;
- i++
- }
- for (let i = 0; i < cards.length; i++) {
- let numCard = +prompt('Введіть номер карти?');
- if (numCard < 0 || numCard > 9) {
- i--
- } else {
- let money = +prompt('Яку суму покласти?');
- if (money < -1000 || money > 1000) {
- i--
- } else {
- cards[numCard] = money;
- break; // можливо тут збилася індентация, та/чи загубилася дужка, але в залежності де саме зміниться і семантика,
- /* **тому з алгоритму можу лише сказати, що він не самий простий, тому що код росте "вправо", має вітвління з
- елсе - що не додає простоти при читані, також буде не дуже просто внести зміни в умови, тобто
- збільшується вкладеність, яка погіршує сприйняття. Але запевняю, що на цьому етапі рішення цілком норм.
- Також ви добре прокачали розуміння умовних переходів, це добре.
- **** змінна і буває від'ємною, зараз це норм, та існують ситуації в інших м.п, коли буде помилка -
- але це синтетичні ситуації, та все ж .)
- Використання брейку інколи дуже доцільне, але треба пам'ятати, що це наче стоп-кран при наявності
- всіх інших органів керування потоком виконання програми, якщо буде бажання подивиться варіант коду
- нижче - я не кажу, що він правильний а ваш ні, ні, це лише для іншого погляду, бо різні кути зору
- прокачують та додають досвіду.
- */
- }
- }
- sumCards = cards.reduce((a, b) => a + b); // ** круто, а чому не
- // sumCards = cards.reduce((sum, currentCardAmount) => {return(sum + currentCardAmount)}, 0);
- console.log(cards); // якщо це ваші логі, вважаю правильним та майже обов'язковим їх використання при написанні коду,
- // то раджу не забувати видаляти їх з фінальної версії коду що передаєте далі (навіть для рев'ю)
- // якщо це не логі а вивід масиву до консолі, то краще зробити це в циклі, бо не всюди так спрацює.
- console.log(`В сумі на всіх ваших картах: ${sumCards}`);
- // пододавав пробільчики - стиль наше все.
- // Гарного коду!
- // **нижче приклад фрагменту коду для обміну досвідом, не раджу дивитися, якщо плануєте ще щось переробляти у своєму
- // рішенні, а тільки після цього.
- let cardNumber;
- do {
- cardNumber = +prompt ('Введіть номер карти?');
- } while (cardNumber < 0 || cardNumber > 9); // для повтору запиту вводу зручно використати do .. while
- let payment;
- do {
- payment = +prompt ('Яку суму покласти?');
- } while (payment > 1000 || payment < -1000);
- cards[cardNumber] = payment; // тепер на корректному номері корректна сума
- // немае вкладенності, фрагменти окремі - декомпозовані, легше сприймаються, не мають вітвління.
- // А чим простіше - тим менше багів можуть заховатися.)
Add Comment
Please, Sign In to add comment