JavaRush
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Работает правильно, но валидатор не пропускает
Алексей
27 уровень
  • 08.11.2022
  • 191просмотров
  • 1комментарий

Работает правильно, но валидатор не пропускает

Вопрос по задаче Разные методы для разных типов
Java Core,  5 уровень,  12 лекция
Обсуждается


В этой задаче тебе нужно:

  1. Считывать с консоли данные, пока не будет введено слово "exit".
  2. Для каждого значения, кроме "exit", вызвать метод print(). Если значение:
    • содержит точку '.', вызвать метод print() для Double;
    • больше нуля, но меньше 128, вызвать метод print() для short;
    • меньше либо равно нулю или больше либо равно 128, вызвать метод print() для Integer;
    • иначе — вызвать метод print() для String.

Требования:
  • Программа должна считывать данные с клавиатуры.
  • Программа должна прекращать считывать данные с клавиатуры после того, как введена строка "exit".
  • Если введенная строка содержит точку("."), и ее можно корректно преобразовать в число типа Double - должен быть вызван метод print(Double value).
  • Если введенная строка может быть корректно преобразована в число типа short и полученное число больше 0, но меньше 128 - должен быть вызван метод print(short value).
  • Если введенная строка может быть корректно преобразована в число типа Integer и полученное число меньше или равно 0 или больше или равно 128 - должен быть вызван метод print(Integer value).
  • Во всех остальных случаях должен быть вызван метод print(String value).
package com.javarush.task.task15.task1519; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; /* Разные методы для разных типов */ public class Solution { public static void main(String[] args) throws IOException { Scanner scanner = new Scanner(System.in); String value; while (true) { value = scanner.nextLine(); if (value.equals("exit")) { break; } try { if (Integer.parseInt(value) > 0 && Integer.parseInt(value) < 128) { short s = Short.parseShort(value); print(s); break; } else if (Integer.parseInt(value) <= 0 || Integer.parseInt(value) >= 128) { int i = Integer.parseInt(value); print(i); break; } else if (value.contains(".")) { Double d = Double.parseDouble(value); print(d); } } catch (NumberFormatException e) { print(value); } } scanner.close(); } public static void print(Double value) { System.out.println("Это тип Double, значение " + value); } public static void print(String value) { System.out.println("Это тип String, значение " + value); } public static void print(short value) { System.out.println("Это тип short, значение " + value); } public static void print(Integer value) { System.out.println("Это тип Integer, значение " + value); } }
0
Комментарии (1)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Vitek
Уровень 34
Expert
8 ноября 2022, 18:37
Убери break из второго и третьего if.
+2
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush