Причина, по которой вы получаете 0 в качестве минимального значения, заключается в том, что при вызове compare.min(num);
ваше значение сравнивается с предопределенным локальным значением min
, равным 0.
А когда вы сравниваетепри любом положительном значении 0 вы получите 0 в качестве минимального значения.
Жизнеспособным решением будет
class Compare
{
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
public void max(int num)
{
if(num > max)
{
max = num;
}
}
public void min(int num)
{
if(num < min)
{
min = num;
}
}
}
, это гарантирует, что все, что вы сначала сравните, будет сохранено как min значение и, следовательно, будет использоваться как новое минимальное значение для всего выполнения вашей программы.