Advertisement
Timkor

hackedATM

Jan 5th, 2021 (edited)
827
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.29 KB | None | 0 0
  1. package com.company.massives;
  2. import java.util.Scanner;
  3. public class bancomat { // ім'я классу має починатися з великої літери, транслітерація не добре, краще ATM
  4. // за іменування методів писав вам раніше, зручно читати код коли дієсловами називати їх, але є і нюанси, звісно. Предикати.
  5.  
  6.     public static void main(String[] args) {
  7.         Scanner scan = new Scanner(System.in); // зайвий
  8.         int nums[] = new int[10];
  9.         work(nums);
  10.     }
  11.  
  12.     public static void allBalance(int[] nums) {
  13.         for (int el : nums) {
  14.             System.out.print(el + " ");
  15.         }
  16.         System.out.print("\n");
  17.     }
  18.  
  19.     public static void addBalance(int[] nums) {
  20.         Scanner scan = new Scanner(System.in);
  21.         System.out.println("Enter the card number : ");
  22.         int card = scan.nextInt() - 1; // якщо ввести 11 то отримаємо виключення "Index 10 out of bounds for length 10"
  23.         if (card < 0 || card > 10) { // 10 пропусте, а не варто
  24.             System.out.println("Enter correct card number!!!");
  25.             work(nums); // таким викликом ви лишаєте завантаженим в пам'ять метод де відбувся некоректний ввод від користувача
  26.             // з усіма змінними, з об'єктом сканера,  з метаданними. А коли відбудеться в новій копії правильний ввод
  27.             // і вона відпрацює, то керування повернеться до цієїж точки, де визвана відпрацювавша копія, і продовжиться
  28.             // виконання попередньої копії методу - тобто буде запит  "Skolko plozhit ? " хоча card буде зберігати
  29.             // невалідний номер картки. Для того, щоб ви могли сами переконатися в цьому я закоментував рекурсивний виклик work()
  30.             // Спробуйте спочатку ввести неправильний номер картки, потім правильний, правильну суму, і...
  31.         }
  32.         System.out.println("Skolko plozhit ? ");
  33.         int addBalance = scan.nextInt();
  34.         if (addBalance < -1000 || addBalance > 1000) {
  35.             addBalance = 0;
  36.             System.out.println("Enter correct card balance!!!");
  37.             addBalance(nums);
  38.         }
  39.         nums[card] = nums[card] + addBalance;
  40.     }
  41.  
  42.     public static void balanceSum(int[] nums) {
  43.         int sum = 0;
  44.         for (int el : nums) { // форич, круто!)
  45.             sum += el;
  46.         }
  47.         System.out.println("v summe na vseh kartah - " + sum);
  48.     }
  49.  
  50.     public static void work(int[] nums) {
  51.         addBalance(nums);
  52.         allBalance(nums);
  53.         balanceSum(nums);
  54.         //work(nums); // закоментував, щоб ви могли побачити рекурсію в дії, коли функція завершує свою роботу.
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement