package com.javarush.task.task04.task0426;
/*
Ярлыки и числа
*/
import java.io.*;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String sA = reader.readLine();
int a = Integer.parseInt(sA);
if (a>0 && (a == 2 * a/2))
System.out.println("положительное четное число");
if (a>0 && !(a == 2 * a/2))
System.out.println("положительное нечетное число");
if (a<0 && (a == 2 * a/2))
System.out.println("отрицательное четное число");
if (a<0 && !(a == 2 * a/2))
System.out.println("отрицательное нечетное число");
if (a==0)
System.out.println("ноль");
}
}
Екатерина
4 уровень
Что не так с кодом? Почему ошибка?
Обсуждается
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
--------Master
5 января 2019, 13:02
Тестируй:
И приучайся код нормально с тегом code выкладывать, а не просто нечитабельной простыней символов (или хотя бы решение к вопросу прикреплять)
0
Екатерина
5 января 2019, 13:51
Тестирую, вижу, что проблема в нечетных, но не понимаю, почему. Выражение с не равно написала по образцу из лекции (a<b)&& (!(c<=d)), т. е. поставила ! перед выражением, которое должно быть ложью: if (a<0 && !(a == 2 * a/2)). Это же переменная типа int, при делении нечетного числа на 2, оно округлится до целого значения и при умножении на 2 полученное число будет отличаться от исходного. При попытке заменить это условие на if (a<0 && a%2 != 0), все равно пишет, что есть ошибка
0
--------Master
5 января 2019, 13:57
другое дело, если было бы
Насчет а%2 - более подходящий вариант для всех 4 проверок, а в данном случае, как я понимаю, смысл в том, что до if (a<0 && a%2 != 0) дело просто не доходит - выполняется условие, проверяемое раньше
+1