• Как закончить программу "Максимальное значение"?

    @Billy_Milligan
    У класса ArrayList нет поля length (Если бы это был массив int[], можно использовать length), для определения размера у List нужно использовать метод size().
    for([инициализация] ; [условие при котором мы продолжаем цикл] ; [шаг])
    Как это работает
    1. [инициализация] - выполняется самым первым и только 1 раз.
    2. [условие при котором мы продолжаем цикл] - проверяем условие
    3. (выполняем код внутри цикла)
    4. [шаг]
    5. [условие при котором мы продолжаем цикл] - проверяем условие
    6. (выполняем код внутри цикла)
    7. [шаг]
    8. ...


    Scanner input = new Scanner(System.in);
    ArrayList<Integer> array = new ArrayList<>();
    int max = 0;
    
    System.out.println("Введите числа");
    
    for(int number = input.nextInt() ; number != 0; number = input.nextInt()) {
         array.add(number);
    }
    
    for (int i = 0; i < array.size(); i++) {
          if (array.get(i) > max) {
               max = array.get(i);
          }
    }
    
    System.out.println("Это число: "+max);
    Ответ написан
    Комментировать
  • Как закончить программу "Максимальное значение"?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Здравствуйте!

    Вот, ваш исходый код:
    import java.util.ArrayList;
    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            ArrayList array = new ArrayList<>();
            System.out.println("Введите числа");
            while (true) {
                int number = input.nextInt();
                array.add(number);
                if (number == 0) {
                    break;
                }
                int max = 0;
                
                for (int i = 0; i < array.length; i++) {
                    if (array.get(i) > max) {
                        max = array.get(i);
                    }
                }
    
            }
        }
    
    }


    Вы пытаетесь получить размер используя length, но при этом используете объект ArrayList. У ArrayList для получения размера нужно использовать size()
    Ошибка:
    i < array.length;
    Либо создавайте массив чисел, либо если используете ArrayList (списочный массив), то вызывайте метод size() для получения размера списка.

    Также обратите внимание, что вы пытаетесь сравнить числа находясь внутри цикла, но при этом до выполнения кода сравнения вы вводите ноль и выходите их массива.

    Добавил комментарии в код:
    if (number == 0) {
                    break; // вышли из цикла
                }
    
                // до сюда код не исполнится, так как выше break и вы вышли из цикла
                int max = 0;
                for (int i = 0; i < array.length; i++) {
                    if (array.get(i) > max) {
                        max = array.get(i);
                    }
                }


    А тут вам нужно передать параметризованный тип (желательно)
    До -
    ArrayList array = new ArrayList<>();
    После -
    ArrayList<Integer> array = new ArrayList<>();

    Что касается получения максимального значения числа, то почему бы вам не воспользоваться возможностями пакета Math ? В частности метод max() или например, метод max() в Collections.

    Вот, рабочий код:
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
    
            Scanner input = new Scanner(System.in);
            ArrayList<Integer> array = new ArrayList<>();
            System.out.println("Введите числа");
    
            while (true) {
                int number = input.nextInt();
                array.add(number);
    
                if (number == 0) {
                    break;
                }
            }
    
            int maxValue = Collections.max(array);
            System.out.println("Максимальное число " + maxValue);
    
        }
    
    }


    Если вы хотите найти макс. значение самой итерируя по списку, то вот, другое решение
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
    
            Scanner input = new Scanner(System.in);
            ArrayList<Integer> array = new ArrayList<>();
            System.out.println("Введите числа");
    
            while (true) {
                int number = input.nextInt();
                array.add(number);
    
                if (number == 0) {
                    break;
                }
            }
    
            /*int maxValue = Collections.max(array);
            System.out.println("Максимальное число " + maxValue);*/
    
            int maxValue = 0;
            for (int i : array) {
                if (array.get(i) > maxValue) {
                    maxValue = array.get(i);
                }
            }
            System.out.println("Максимальное число " + maxValue);
        }
    
    }
    Ответ написан
    Комментировать
  • Как написать программу "Максимальное значение"?

    @Ostic
    Программист - любитель
    int[] nums={6,-1,-2,-3,0,1,2,3,4};
    Arrays.sort(nums);
    System.out.println( "Minimum = " + nums[0] );
    System.out.println( "Maximum = " + nums[nums. length-1] );
    Ответ написан
    Комментировать
  • Как написать программу "Максимальное значение"?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Я и сам изучаю Java и хочу акцентировать ваше внимание на следующих пунктах:

    Во-первых,
    ArrayList<String> myList Вы создаете ArrayList с параметрированным типом данных String.

    Отсюда возможны слудующие проблемы в дальнейшем:

    1) Как убедиться, что пользователь введет именно число, а не слово. Если вы хотите использовать именно тип String, то стоит использовать также regexp и метод matches() и проверять на то, что пользователь ввел именно цифру или число.

    2) Как сравнить числа, если они являются переменными типа String?
    Разве, что нужно будет итерировать по списку и использовать Integer.parseInt(str) Ведь, сравнить строки вы не можете и вам придется привести строки к типу int.

    3) if(number == "!")
    Строки лучше сравнивать используя метод equals(). Вам не удается выйти из цикла именно из-за этого. используйте equals()

    Наверное, лучше сразу принимать int используя sc.nextInt(), а из цикла выходить другим способом. Например, нажатием кнопки, которую вы назначите на выход из цикла. Например, добавив event listener для кнопки Enter и по нажатию кнопки выходите из цикла. А далее итерировать по списку и сравнить данные и выдать макс. значение
    Ответ написан
    Комментировать
  • Как написать задачу «Минимальный делитель»?

    Zoominger
    @Zoominger Куратор тега Python
    System Integrator
    else:
    if a < 2:
    print("Ошибка!")
    continue

    Вот тут.
    Нужно проверять величину числа до деления. Если меньше, то break.
    Ответ написан
    1 комментарий
  • Как закончить мою программу на Python?

    LazyTalent
    @LazyTalent
    Data Engineer, Freelancer
    black_list = ['password']
    while True:
        password1 = str(input("Введите пароль "))
        if len(password1) < 8:
            print("Короткий!")
            continue
        elif password1 in black_list:
            print("Простой!")
            continue
        password2 = str(input("Введите пароль еще раз "))
        if password1 == password2:
            print("OK")
            break
        else:
            print("Различаются!")
    Ответ написан
    1 комментарий