Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // без применения функций сейчас не время улучшать функционал, ниже тому пример и доказательство - сплошная
- // копипаста, да и бага есть, пробел как ноль воспринимается, нужно еще условие добавлять. Не оптимально
- // писал, старался все учесть, но это не цель сейчас, сперва нужен хороший инструментарий, а там уж пожалуйста.
- // и еще, если часть кода (или выбранный алгоритм) не удобны - не стоит подпирать костылями, нужно заменить.
- let card = []; //создание массива для всех карт
- for (let i = 0; i < 10; i++) { //перебор для n карт
- card[i] = 0; // записать карты от 0 до n и присвоить им 0
- }
- do {
- // запуск цикла на повтор для ввода карты и суммы
- let cardNum; // переменная для выбора карт
- let summ; // переменная для вводимой суммы
- let isOkPressedWithEmptyField = false; // нажат Ок но поле пустое
- let isCanselPressed = false; // пользователь нажал отмена
- let isCardNumberValid = false; // номер карты валидный
- let userInput; // ввод пользователя
- let msgEnterCardNum = "Введите номер карты"; // дефолтный меседж
- let msgPlaceHolder = ""; // подсказка при вводе
- //ввод номера карты
- do {
- isOkPressedWithEmptyField = false;
- isCardNumberValid = false;
- //сырой ввод пользователя, как есть, без приведения типа
- userInput = prompt(msgEnterCardNum, msgPlaceHolder);
- if (userInput === null ) isCanselPressed = true;
- if (userInput === '') isOkPressedWithEmptyField = true;
- if (isCanselPressed) break;
- if (isOkPressedWithEmptyField) {
- msgEnterCardNum = "Сперва введите номер карты, после ввода нажмите ОК";
- msgPlaceHolder = "";
- continue;
- }
- cardNum = +(userInput); //ввод конкретного номера карты, тут пробел приводится к нулю - это плохо.
- if (cardNum >= 0 && cardNum < card.length) { // проверить на длину массива
- isCardNumberValid = true;
- } else {
- msgPlaceHolder = "от " + 0 + " до " + (card.length - 1);
- }
- } while (isOkPressedWithEmptyField || !isCardNumberValid) // "человекупонятное" условие, благодаря именованиям переменных))
- // console.log ("Номер карты: " + cardNum);
- if (isCanselPressed) break;
- // ввод суммы зачисления на карту
- let msgEnterSumm = "Введите сумму от -1000 до 1000";
- let isSummValid = false;
- msgPlaceHolder = "";
- do {
- isOkPressedWithEmptyField = false;
- userInput = prompt(msgEnterSumm, msgPlaceHolder) //ввод суммы
- if (userInput === null) isCanselPressed = true;
- if (userInput === '') isOkPressedWithEmptyField = true;
- if (isCanselPressed) break;
- if (isOkPressedWithEmptyField) {
- msgEnterSumm = "Сперва введите сумму, после ввода нажмите ОК";
- msgPlaceHolder = "";
- continue;
- }
- summ = +(userInput); //тут пробел приводится к нулю - это плохо.
- if (summ >= -1000 && summ <= 1000){
- isSummValid = true;
- } else {
- msgPlaceHolder = "-1000 .. +1000";
- }
- } while (isOkPressedWithEmptyField || !isSummValid) //проверить на вводимую сумму
- if (isCanselPressed) break;
- card[cardNum] = card[cardNum] + summ;
- } while (true) //условие для окончания ввода данных - вечно, выходим брейком
- for (let i = 0; i < card.length; i++) //проверить есть ли данные в массиве
- console.put(card[i] + " ") // Вывести баланс на всех картах
- console.log(); // Отступ для следующего консоля
- let sumAll = 0 //Сума средств на всех картах
- for (let i = 0; i < card.length; i++) { //перебрать массив
- sumAll = sumAll + card[i] //прибавить баланс средств каждой карты в массиве
- }
- console.log("Сума на всех картах: " + sumAll);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement