Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company.massives;
- import java.util.Scanner;
- public class bancomat { // ім'я классу має починатися з великої літери, транслітерація не добре, краще ATM
- // за іменування методів писав вам раніше, зручно читати код коли дієсловами називати їх, але є і нюанси, звісно. Предикати.
- public static void main(String[] args) {
- Scanner scan = new Scanner(System.in); // зайвий
- int nums[] = new int[10];
- work(nums);
- }
- public static void allBalance(int[] nums) {
- for (int el : nums) {
- System.out.print(el + " ");
- }
- System.out.print("\n");
- }
- public static void addBalance(int[] nums) {
- Scanner scan = new Scanner(System.in);
- System.out.println("Enter the card number : ");
- int card = scan.nextInt() - 1; // якщо ввести 11 то отримаємо виключення "Index 10 out of bounds for length 10"
- if (card < 0 || card > 10) { // 10 пропусте, а не варто
- System.out.println("Enter correct card number!!!");
- work(nums); // таким викликом ви лишаєте завантаженим в пам'ять метод де відбувся некоректний ввод від користувача
- // з усіма змінними, з об'єктом сканера, з метаданними. А коли відбудеться в новій копії правильний ввод
- // і вона відпрацює, то керування повернеться до цієїж точки, де визвана відпрацювавша копія, і продовжиться
- // виконання попередньої копії методу - тобто буде запит "Skolko plozhit ? " хоча card буде зберігати
- // невалідний номер картки. Для того, щоб ви могли сами переконатися в цьому я закоментував рекурсивний виклик work()
- // Спробуйте спочатку ввести неправильний номер картки, потім правильний, правильну суму, і...
- }
- System.out.println("Skolko plozhit ? ");
- int addBalance = scan.nextInt();
- if (addBalance < -1000 || addBalance > 1000) {
- addBalance = 0;
- System.out.println("Enter correct card balance!!!");
- addBalance(nums);
- }
- nums[card] = nums[card] + addBalance;
- }
- public static void balanceSum(int[] nums) {
- int sum = 0;
- for (int el : nums) { // форич, круто!)
- sum += el;
- }
- System.out.println("v summe na vseh kartah - " + sum);
- }
- public static void work(int[] nums) {
- addBalance(nums);
- allBalance(nums);
- balanceSum(nums);
- //work(nums); // закоментував, щоб ви могли побачити рекурсію в дії, коли функція завершує свою роботу.
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement