• ,

package com.javarush.test.level15.lesson12.home01;

Программа работает в соответствии с условиями задачи, но не проходит проверку.

package com.javarush.test.level15.lesson12.home01;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/* Разные методы для разных типов
1. Считать с консоли данные, пока не введено слово "exit".
2. Для каждого значения, кроме "exit", вызвать метод print. Если значение:
2.1. содержит точку '.', то вызвать метод print для Double;
2.2. больше нуля, но меньше 128, то вызвать метод print для short;
2.3. больше либо равно 128, то вызвать метод print для Integer;
2.4. иначе, вызвать метод print для String.
*/

public class Solution
{
    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        while (true)
        {
            String s = reader.readLine();
            if (s.equals("exit")) break;
            if (s.matches("[1-9]+"))
            {
                int a = Integer.parseInt(s);
                if (a > 0 && a < 128)
                {
                    print((short) a);
                } else if (a >= 128)
                {
                    print(a);
                }
            } else if (s.matches("\\d+\\.\\d+"))
            {
                print(Double.parseDouble(s));
            } else print(s);
        }

    }

    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);
    }
}

3 комментария

ss-20
попробуйте вначале записать все введенные значения в list, а потом уже с ним работать.
Alvisid
  • Alvisid
  • 0
  • Комментарий отредактирован 2017-02-02 10:15:52 пользователем Alvisid
Доброго дня. Синтаксис Java допускает: double d = .342535;
Попробуй на таком значении затестить.
vasulko
Доброго дня. Ваша порада допомогла і я ще забув за "+" або "-" для double.Дякую.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.