Подскажите, почему exit добавляется в список, хотя по условию не должен?
package com.javarush.task.task15.task1519;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.ArrayList;
/* 1. Программа должна считывать данные с клавиатуры.
2. Программа должна прекращать считывать данные с клавиатуры после того как была введена строка "exit".
3. Если введенная строка содержит точку(".") и может быть корректно преобразована в число типа Double -
должен быть вызван метод print(Double value).
4. Если введенная строка может быть корректно преобразована в число типа short и
полученное число больше 0, но меньше 128 - должен быть вызван метод print(short value).
5. Если введенная строка может быть корректно преобразована в число типа Integer и полученное
число меньше или равно 0 или больше или равно 128 - должен быть вызван метод print(Integer value).
6. Во всех остальных случаях должен быть вызван метод print(String value).*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> list = new ArrayList<String>();
String s;
Double D;
char[] ch;
long a;
for(int j=0; ;j++){
s = reader.readLine();
if(s.equals("exit")) {break;}
else list.add(s);
}
for(int k = list.size()-1; k>=0; k--){
ch = list.get(k).toCharArray();
for(int i = 0; i < ch.length; i++){
if((ch[i] == '.')) {
D = Double.parseDouble(list.get(k));
print(D);
list.remove(k);
break;} }
}
for(int i = 0; i < list.size(); i++) {
a = Long.parseLong(list.get(i));
if ((a > 0) && (a < 128)) {
print((short) a);
}
else
if ((a <= 0) && (a >= 128)) {
print((int) a);
}
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);
}
}