Не понимаю почему 40000 воспринимает как Integer...Соответственно не выполняются два последних условия задачи, help.
package com.javarush.task.task15.task1519;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Scanner;
/*
Разные методы для разных типов
*/
public class Solution {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
while (true) {
String st = sc.next();
try {
if (st.equals("exit")){
break;
} else if (st.contains(".")) {
double a = Double.parseDouble(st);
print(a);
} else if (Short.parseShort(st)>0&Short.parseShort(st)<128){
Short sh = Short.parseShort(st);
print(sh);
}else if (Integer.parseInt(st)<=0||Integer.parseInt(st)>=128){
int in = Integer.parseInt(st);
print(in);
}
} catch (Exception e){
print(st);
}
}
}
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);
}
}