Чтобы сохранить все числа, вам нужно поместить их в структуру данных.Если количество записей неизвестно априори , то использование List<Integer> enteredNums = new ArrayList<>();
и затем if (s != null) { enteredNums.add(Integer.parseInt(s); }
позволит вам накопить каждое введенное число.
Затем вы можете обработать введенные числа с помощью:
for (Integer num : enteredNums) {
...
}
Редактировать на основе комментария:
У ОП было два вопроса:
- как сохранить каждое числочто пишет пользователь?
- как диалоговое окно сообщения, в котором должно быть опубликовано наибольшее и наименьшее число.
Теперь логически # 2 можно решить, если один из треков # 1,но в комментарии сбор фактических данных представляется менее важным.
Итак, здесь другой подход.Если основная цель состоит в том, чтобы отследить самое большое и самое маленькое, и накопление всех введенных значений не является обязательным требованием), то создание пары переменных и их условная установка будут работать.После каждой записи обновляйте наименьшую, наибольшую и (здесь, для забавы) общую сумму.
Без структуры данных (например, списка) невозможно достичь # 1, но при условии, что реальное желание# 2, тогда нет необходимости отслеживать все входные данные, только текущий самый маленький и самый большой.
public static void main(String[] args) {
// the smallest entered number
int smallest = 0;
// the largest entered number
int largest = 0;
// the total; since lots of ints could overflow an int, use a long; not
// completely immune to overflow, of course
long sum = 0L;
// whether it is the first entered number
boolean foundOne = false;
int n;
String s;
do {
// get an input
s = JOptionPane.showInputDialog("Skriv ett nummer");
// have to ensure not canceled; as s will be null
if (s != null) {
// parse the entered value; note this will throw an exception if
// cannot parse
n = Integer.parseInt(s);
// on the first go through, we set unconditionally; also update
// the boolean so can indicate if anything was entered
if (! foundOne) {
smallest = n;
largest = n;
foundOne = true;
}
else {
// set the smallest and the largest entered values
// the Math methods are just easier to read, but could
// be done by if statements
smallest = Math.min(smallest, n);
largest = Math.max(largest, n);
}
// add to the running total
sum += n;
}
} while (s != null && s.length() > 0);
// output the smallest, largest, total if anything entered
if (foundOne) {
// this should be a dialog, rather than just output, but that is left
// as an exercise for the reader
System.out.printf("The smallest value was %d\n", smallest);
System.out.printf("The largest value was %d\n", largest);
System.out.printf("The total of all entered values was %d\n", sum);
}
else {
System.out.println("no values were entered");
}
}
Примечание: не проверено