Программа уходит в бесконечный цикл

73
29 ноября 2021, 14:10

IDE использую eclipse. Написал следующую функцию, но при выводе элементов массива (не через цикл) начинает бесконечно выводить значения без выхода из функции. Когда я пытался делать через HashMap было тоже самое, поэтому я думаю тут дело в чем то другом.

public class Main {
private static void searchShortAndLongNumber() {
    String arr[] = new String[] { "123", "1", "1453", "2", "12354" };
    String[][] dictionary = new String[2][2];
    int min = 0;
    int max = 0;
    for (int i = 0; i < arr.length; i++) {
        if (max < arr[i].length()) {
            max = arr[i].length();
            dictionary[0][0] = Integer.toString(max);
            dictionary[0][1] = arr[i];
        } else if (min < arr[i].length()) {
            min = arr[i].length();
            dictionary[1][0] = Integer.toString(min);
            dictionary[1][1] = arr[i];
        }
    }
    System.out.println("Самое длинное число: " + dictionary[0][1] + " Длина: " + dictionary[0][0]);
    System.out.println("Самое короткое число: " + dictionary[1][1] + " Длина: " + dictionary[1][0]);
}
public static void main(String[] args) {
    int switcher = new Scanner(System.in).nextInt();
    boolean isExit = false;// флаг для выхода из программы
    while (isExit == false) {
        switch (switcher) {
        case 0:
            isExit = true;
            break;
        case 1:
            searchShortAndLongNumber();
            break;
        case 2:
            break;
        case 3:
            break;
        case 4:
            break;
        default:
            throw new IllegalArgumentException("Неккоректное значение: " + switcher);
        }
    }
}
}

Вот скриншот консоли:

Answer 1

Вам нужно строчку

int switcher = new Scanner(System.in).nextInt();

внести вовнутрь цикла

public static void main(String[] args) {
    boolean isExit = false;// флаг для выхода из программы
    while (isExit == false) {
        int switcher = new Scanner(System.in).nextInt();
        switch (switcher) {
        ..............
Answer 2
while (isExit == false) {
    int switcher = new Scanner(System.in).nextInt();
    switch (switcher) {
    case 0:
        isExit = true;
        break;
    case 1:
        searchShortAndLongNumber();
        break;
    case 2:
        break;
    case 3:
        break;
    case 4:
        break;
    default:
        throw new IllegalArgumentException("Неккоректное значение: " + switcher);
    }
}
READ ALSO
Генерируемые компилятором методы – в чём смысл?

Генерируемые компилятором методы – в чём смысл?

Например, методы генерируемые компилятором – values() и valueOf(String name) для перечислений (в классе Enum их нет): почему бы просто не объявить их как...

92
Вывод многострочного текста

Вывод многострочного текста

Как быстро выводить многострочный текст?

98
Нужна помощь с вёрсткой кнопки

Нужна помощь с вёрсткой кнопки

Как лучше всего сверстать кнопку "WORK WITH US!"? У меня что-то не получается

104
Динамический размер input/textarea

Динамический размер input/textarea

такой вопрос, как сделать, чтобы при вводе или выводе текста при помощи input или чего-либо еще:

84