Я размышлял по такой логике: задаем стартовые пустые переменные, запускаем цикл, сканируем число, смотрим больше ли 0, находим максимальное среди текущего считанного и максимального за все предыдущие циклы (на первом круге цикла будет сравнение с 0), после чего сохраняем максимальное в переменную "a" и опять по кругу пока числа не кончатся.
И мне вот надо как раз сделать такое условие ("что числа в таблице ввода закончились", тогда делаем break), цикл кончается и мы выводим последнее максимальное число из переменной "a", которое по совместительству будет являться максимальным из всех введенных ранее.
Я полный нуб, так что не судите строго если не понимаю очевидных вещей.
package com.javarush.task.task05.task0532;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/*
Задача по алгоритмам Ӏ Java Syntax: 5 уровень, 12 лекция
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int a = 0;
int b = 0;
while (true) {
int n = Integer.parseInt(reader.readLine());
if (n > 0) {
b = Math.max(a, n);
a = b;
}
else {
break;
}
}
System.out.println(a);
}
}
while
? Имхо, тут проще сделать с помощьюfor
. Во вторых, у Вас в условии задачи чётко сказано: