Не совсем понял прикола в задании. Создал объект для считывания, String numText, int num и преобразовал numText в int.
Далее сравнение через 3 if:
if (num > 0) {
num = num * 2;
sout(num);
}
if (num < 0) {
num = num + 1;
sout(num);
}
if ( num == 0) sout("0");
На что мне выдало - проверьте решение про -1, я покумекал и решил через else-if решить второй пункт.
if (num < 0){
num = num + 1;
} else if (num == 0) {
sout ("0");
} else sout (num);
Но мне начал ворчать за второй пункт, что я перепрыгиваю алгоритм задания - хотя объективно вроде верна логика? Я сначала проверяю число на ввод и суммирую и затем делаю контрольную проверку на равеноство 0, в итоге если 0, то вывод 0, если нет, то вывод всех остальных отрицательных чисел.
По итогу же компилятор принял такое решение, но я не совсем понял, чем оно противоречит первое, где все тоже самое без else if. Ведь в этом решении мы при -1 получаем num = 0 и сразу выводим num в консоль. Но добавляем еще проверку на num == 0 и выводим в коносль отдельно текстом. У меня же во втором примере как показалось более правильная логика - мы сначала обрабатываем число и присваиваем значение num. Затем идем по алгоритму - если 0, то вывод 0, если нет, то выводим num. В общем я прав или нет ?
if (num < 0){
num = num + 1;
System.out.println(num);
}
else if (num == 0){
System.out.println("0");
}
Kuksh
15 уровень
Правилен ли мой алгоритм с точки зрения логики или надо делать по заданию в условии?
Обсуждается
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia VolkovaJava Developer в DXCMaster
26 февраля 2021, 10:45
Что будет, если при твоем первом варианте ввести -1?
А во 2-м варианте с положительным числом вывод будет не соответствовать.
0