Почему при таком условие число свыше чем 50 000 не воспринимает как Int?
else if (Short.parseShort(in) > 0 && Short.parseShort(in) < 128) {
print(Short.parseShort(in));
А если вместо шорт.парсешорт поставить аналогично с интеджер то все работает нормально?
package com.javarush.task.task15.task1519;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Solution {
public static void main(String[] args) throws IOException {
//напиште тут ваш код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for (;;) {
String in = reader.readLine();
if (in.equals("exit")) {
break;
}
else {
try {
if (in.contains(".")) {
print(Double.parseDouble(in));
} else if (Short.parseShort(in) > 0 && Short.parseShort(in) < 128) {
print(Short.parseShort(in));
} else if (Integer.parseInt(in) <= 0 || Integer.parseInt(in) >= 128) {
print(Integer.parseInt(in));
}
} catch (NumberFormatException e) {
print(in);
}
}
// else {
// print(in);
// }
}
}
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);
}
}