Java Scanner не работает в Textpad, компилируется без ошибок, но зависает при загрузке.

Вопрос или проблема

Когда я запускаю программу со сканером в TextPad, она компилируется без ошибок, но потом просто загружается до тех пор, пока не будет прервана, и в итоге выдает код выхода 130.

import java.util.Scanner;

public class Lab3 {
    public static void main(String[]args) {
        double Sales;
        Scanner keyboard = new Scanner(System.in);
        System.out.print("Пожалуйста, введите общие продажи компании в миллионах с точностью до 2 знаков после запятой: ");
        Sales = keyboard.nextDouble();

        System.out.println(Sales);

        double EastCoastSales = (Sales*0.62);

        System.out.println("Подразделение Восточного побережья заработало " + EastCoastSales + " миллионов на продажах");
    }
}

Это код, который я пытаюсь запустить. Когда я его прерываю, он выводит первую строку, но только это; в остальном он просто загружается в пустом окне.

Я пытался копировать примеры учителя или другие примеры из интернета и запускать их, однако результат один и тот же: он загружается бесконечно, а затем, когда я прерываю, он выводит println ниже Scanner x = new Scanner(System.in) и затем завершает работу с кодом 130.

Ответ или решение

Проблема, с которой вы столкнулись, связана с использованием Scanner для ввода данных в TextPad. При компиляции и запуске программы вы видите, что программа "зависает", ожидая ввода, но фактически вы не можете ввести данные. Главной причиной этого является то, как TextPad управляет стандартным вводом и выводом.

Вот несколько шагов, которые помогут вам решить проблему:

  1. Проверка конфигурации TextPad:
    Убедитесь, что в настройках TextPad настроен корректный способ выполнения Java-программ. Ниже приведен способ, как это можно сделать:

    • Перейдите в Configure -> Preferences.
    • На вкладке Tools проверьте конфигурацию для Java. Убедитесь, что командная строка для запуска включает java -cp ... и не включает лишние параметры, которые могут ограничивать ввод.
  2. Использование альтернативного терминала:
    TextPad может не поддерживать стандартный ввод так, как вы ожидаете. Рассмотрите возможность использования других сред, таких как:

    • Command Prompt (cmd) или Terminal: Запустите ваш .java файл из командной строки. Вам нужно скомпилировать класс с помощью javac Lab3.java и затем запустить его с помощью java Lab3.

    • IDE: Попробуйте использовать более полную IDE, например IntelliJ IDEA или Eclipse, которые обеспечивают лучший интерфейс для работы с Java, включая поддержку ввода данных.

  3. Проверьте ввод данных:
    Если вы все-таки хотите использовать TextPad, убедитесь, что вы действительно вводите данные в ожидаемом формате. Например, если вы вводите строку, которая не может быть преобразована в double, программа может зациклиться в ожидании корректного ввода. Попробуйте ввести только числа и избегайте символов.

  4. Вывод для отладки:
    Вы можете попробовать вставить дополнительные System.out.println() в ваш код для проверки того, на каком этапе программа застревает, но имейте в виду, что стандартный вывод также может не отображаться, если программа держит ввод в ожидании.

Пример исправленного кода может выглядеть следующим образом, однако в этом случае
основное внимание следует уделить среде выполнения, а не изменению кода:

import java.util.Scanner;

public class Lab3 {
    public static void main(String[] args) {
        double Sales;
        Scanner keyboard = new Scanner(System.in);
        System.out.print("Пожалуйста, введите общую сумму продаж компании в миллионах с двумя знаками после запятой: ");

        if (keyboard.hasNextDouble()) {
            Sales = keyboard.nextDouble();
            System.out.println(Sales);
            double EastCoastSales = (Sales * 0.62);
            System.out.println("Подразделение Восточного побережья заработало " + EastCoastSales + " миллионов в продажах.");
        } else {
            System.out.println("Ошибка ввода: убедитесь, что вы вводите числовое значение.");
        }

        keyboard.close(); // Не забудьте закрыть сканер
    }
}

Если после всех этих шагов проблема не будет решена, рекомендую использовать другую среду разработки, так как это может значительно упростить выполнение и отладку ваших программ на Java.

Оцените материал
Добавить комментарий

Капча загружается...