Timkor

reviewATM

Aug 7th, 2020
1,584
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Важно помнить, что ревью это про код, а не про автора,
  2. // цель  - получить знания и опыт, причем обоюдная цель, как ревьювера
  3. // так и автора кода, все ошибаются и ревьювер тоже, идеального кода
  4. // не существует, попытки его создать - потеря времени, время -
  5. // невосполнимый ресурс в нашем мире.  
  6. var a = [] //массив карточек, вместо var лучше юзать let, пока просто
  7. // доверьтесь, разберетесь детально чуть позже, если имя для
  8. // переменной массива подобрать со смыслом, например cards, то код
  9. // читать будет гораздо легче, попробуйте, пожалуйста.
  10. var b = 0 // имя этой глобальной переменной тоже можно наполнить
  11. // смыслом, например total, moneySum, sum, amount  
  12. a.length = 10 // при размере массива 10 элементов их индексы
  13. // будут от 0 до 9, при этом всего их будет именно 10
  14. //0,1,2,3,4,5,6,7,8,9 - здесь 10 чисел (идексов элементов)
  15. while(true){
  16.     let f = +prompt("vvedi nomer kartochki")
  17.     if(f == 0){break} // выход из цикла, т.е. завершение прораммы
  18.     // при вводе нуля, по условию карточки пронумерованы от 0 до 9
  19.     //"номера мають бути від 0 до 9"
  20.     // у вас выходит 1,2,3,4,5,6,7,8,9 - только девять карточек,
  21.     //с которыми можно работать
  22.     if(f > 10){alert("undefined card"); continue} // если ввести 10
  23.     // то размер массива станет 11, т.к. js добавит туда элемент с
  24.     // индексом 10, и тогда размер массива будет от 0-вого до 10-того = 11 эл.
  25.     // ошибки не возникает, но вы можете убедиться в этом выведя размер
  26.     // массива после ввода числа 10
  27.     if((Boolean(f)) == false){
  28.         alert("undefined card"); continue;
  29.     }
  30.     f = f - 1 // ага.. вот оно че.. это называется "костыль".))
  31.     // т.е. не создание ровных здоровых "ног" а исправление
  32.     //ситуации локальным решением, частенько встречается на практике,
  33.     // но лучше без них стараться обходиться.)
  34.     console.log("f- " + f)
  35.     a[f] = +prompt("skolko polozhit?") // вы сразу кладете
  36.     //введенное значение в массив, лучше сперва его проверить, и не
  37.     // допустить этого если оно не корректн, а попросить пользователя повторить ввод ,
  38.     // иначе это некорректное (не валидное) значение останется в массиве
  39.     // и потом при суммировании появится ошибка или NaN
  40.         console.log("a[f]- " + a[f])
  41.     if((Boolean(a[f])) == false){alert("wrong"); continue;}
  42.     for(let z = 0; z < 10; z++){
  43.         if(a[z] == undefined){continue;}
  44.         b = b + a[z]
  45.     }  alert("v summe na vseh kartah " +b)
  46.     b = 0
  47.     // не даю вам конкретных правок, если они вам нужны - скажите, но
  48.     // мне кажется вы сами можете сделать круто.
  49.     // а выход из цикла условием не требуется, но если уж вы хотите
  50.     // его реализовать  - это может быть выход не по нулю, а по
  51.     // букве , или цифре 11, или по слову exit, тогда чудо-фокус с
  52.     // уменьшением не понадобится, минус костыль)) Хорошего кода!
Advertisement
Add Comment
Please, Sign In to add comment