Advertisement
Timkor

niceATM

Nov 16th, 2020
523
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var cards = [];
  2. cards.length = 10;
  3. var i = 0;
  4.  
  5. while (i < cards.length) {  // вносимо інфо, що на кожній картці по 0 грн
  6.     cards[i] = 0;
  7.     i++;
  8. }
  9.  
  10. for (i = 0; i < cards.length; i++) {  // перевіримо, що лежить на кожній картці
  11.   console.put (cards[i] + " ");
  12. }
  13. console.log();
  14.  
  15. var isAccepted = true;
  16. var card, sum;
  17.  
  18. while (isAccepted) {
  19. // особисто мені хочеться спростити до мінімуму, та й ще відокремити різні перевірки, тобто уникнути вкладенності.
  20. // а ще коли між if та else багато коду - теж ускладнює сприйняття, та й взагалі, якщо можна уникнути чогось (else так
  21. // точно),  то краще уникнути. І час виграєте і дасте замовникові більшу свободу вибору, бо вгадувати плюшки то не вдячна
  22. // справа. Наголошую, це особиста думка, цілком допускаю, що ваш підхід крутіший та доцільніший ніж мій.  
  23.  
  24.  card = +prompt("Введіть номер карточки, на яку Ви хочете покласти гроші");
  25.  
  26.  //перевіряємо корректність введеного номера картки
  27.   if (card >= 0 && card <10) {
  28.  
  29.       sum = +prompt("Скільки Ви бажаєте покласти гривень?");
  30.  
  31.       //перевіряємо корректність введеної суми
  32.       if (sum >= -1000 && sum <= 1000){
  33.  
  34.           cards[card] += sum;
  35.  
  36.       } else {
  37.           alert('Сума повинна бути від -1000 до 1000');
  38.           console.log ('Введена невірна сума!');
  39.           continue;
  40.       }
  41.  
  42.   } else {
  43.       alert('Невірний номер карти!!!');
  44.       console.log('Введено невірний номер карти!!!')
  45.       continue;
  46.   }
  47.  
  48.  
  49.  // перевіримо, що лежить на кожній картці
  50.   for (i = 0; i < cards.length; i++) {
  51.  
  52.    console.put (cards[i] + " ");
  53.   }
  54.  console.log();
  55.  
  56.  isAccepted = confirm ('Ви хочете покласти ще грошей?');
  57. }
  58.  
  59.  
  60. // знайдемо скільки грошей на всіх картах разом
  61. var allCards = 0;
  62.  
  63. for (i = 0; i < cards.length; i++) {
  64.  
  65.     allCards += cards[i];
  66.  
  67. }
  68. console.log('В сумі на всіх картах '+ allCards + ' гривень');
  69.  
  70. // мій варіант простий простий, менше повідомлень, але я згоден на цю "жертву". Коли вже всі прийомчики будуть у вашому
  71. // арсеналі, а саме функції, то вже будете робити такий ux більш корректно та менше ускладнюючи код. Тобто ваше бажання
  72. // гарного ui/ux - то добре, але на цьому етапі реалізація трохи зайва, на мою думку.
  73. while (isAccepted) {
  74.   do {
  75.     card = +prompt("Введіть номер карточки, на яку Ви хочете покласти гроші");
  76.   } while (card < 0 || card >= 10)
  77. // тут ми з валідним номером картки
  78.   do {
  79.     sum = +prompt("Скільки Ви бажаєте покласти гривень?");
  80.   } while (sum < -1000 || sum > 1000)
  81. // тут і з валідною сумою
  82.   cards[cardNum] = payment; // імена змінних теж суб'єктивно мої
  83.   isAccepted = confirm ('Ви хочете покласти ще грошей?'); // тут ви круто придумали, я такого і не знав.
  84. }
  85. // раджу спочатку вчитись у "ширину" а потім вже, у міру поточних завдань у "глибину", здається це більш ефективно.
  86. // Гарне рішення з ux/ui , але ж і ускладнене з цих причин. Не зловживайте вкладеністю умов (та циклів теж) , якщо можна
  87. // без елсе  - краще без нього, щоб не тримати в голові на протязі багатьох рядків коду що ми у умові.. бо коли натрапити
  88. // на елес, то вже прийдеться скролити угору, уточнювати до якої він умови. Якщо можна локально спочатку одне, за ним друге,
  89. // то легше, і втретє повторю - то лише для роздумів, не істина у першій інстанції.)
  90. // Гарного коду!)   
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement