У вас есть несколько проблем в вашей программе. Причина, по которой первое число никогда не учитывается, состоит в том, что у вас есть
userNumber = JOptionPane.showInputDialog("Enter a positive integer or 0 to quit");
number = Integer.parseInt( userNumber );
два раза в вашем коде (до цикла while и в цикле while).
Я бы предложил инициализировать число с помощью Integer.MAX_VALUE: number = Integer.MAX_VALUE;
Затем удалите
userNumber = JOptionPane.showInputDialog("Enter a positive integer or 0 to quit");
number = Integer.parseInt( userNumber );
перед циклом while.
В if (number < min & number != 0)min=number;
отсутствует
&
=>
if (number < min && number != 0) {
min=number;
}
Условие в цикле while можно упростить, написав while ( number > 0) {
, поскольку > 0
также означает != 0
.
Я бы также предложил немного улучшить ваш код для удобства чтения. Всегда используйте фигурные скобки для условий (if
), даже если вы выполняете только одну строку, если условие истинно.
Надеюсь, это поможет. Дайте мне знать, если вам нужна дополнительная помощь, но вы сможете решить это задание самостоятельно:)