Здравствуйте! Подскажите по коду, правильно оформлен код для вычисления четного или нечетного числа. Или что можно добавить или переделать?
public class Chet_Nechet {
public static void main(String args[]){
int n = 9;
if((n%2)==0){
System.out.println("Число " + n + " четное ");
}
else{
if((n%1)==0){
System.out.println("Число " + n + " нечетное ");
}
}
}
}
задан 25 авг 2011 в 4:08
1
А можно “сопимайзить”:)
Следующая проверка будет работать быстрее.
Если число чётное, то его младший бит = 0.
реализация:
if ((n & 1) == 0) {
System.out.println("четное");
} else {
System.out.println("нечетное");
}
ответ дан 25 авг 2011 в 11:52
megacodermegacoder
3,03927 серебряных знаков48 бронзовых знаков
3
public class isEven {
public static void main(String args[]) {
int n = 9;
if(n % 2 == 0) {
System.out.println("Число " + n + " четное");
} else {
System.out.println("Число " + n + " нечетное");
}
}
}
Названия классов надо писать на англ, транслит – плохой стиль. Также повторите приоритет операций, чтобы не писать ((n%2)==0). И еще условие ((n%1)==0) всегда дает true, значит оно лишнее. И советую не скупиться на пробелы, (n % 2 == 0) смотрится лучше, чем (n%2==0) (ИМХО)
Ну или так
public class isEven {
public static void main(String args[]) {
int n = 9;
System.out.print("Число " + n + " ");
if( n % 2 == 0) {
System.out.println("четное");
} else {
System.out.println("нечетное");
}
}
}
ответ дан 25 авг 2011 в 4:30
strbbstrbb
1,1051 золотой знак11 серебряных знаков21 бронзовый знак
3
System.out.println((n & 1) == 0 ? "чётное" : "нечётное");
ответ дан 29 июн 2015 в 12:33
HarcoHarco
2452 серебряных знака8 бронзовых знаков
2
Подскажите по коду, правильно оформлен код для вычисления четного или нечетного числа. Или что можно добавить или переделать?
Неправильно. Критеческая ошибка, что для отрицательных чисел он вообще ничего не выводит.
Дальше. Зачем скобки в выражении (n%2)==0
? И зачем второй if
? Если остаток не 0, то число нечётное.
И ещё, если сравнивать при помощи битовой операции n&1
, то не будет сложностей с отрицательными числами. Остаток от деления надо всегда сравнивать с нулём, а результат &
всегда либо 0, либо 1.
ответ дан 15 июл 2015 в 10:36
Qwertiy♦Qwertiy
121k24 золотых знака121 серебряный знак291 бронзовый знак
свои пять копеек:
boolen b = (n%2 == 0);
if(b)
ответ дан 25 авг 2011 в 11:53
I would recommend
Java Puzzlers: Traps, Pitfalls, and Corner Cases Book by Joshua Bloch
and Neal Gafter
There is a briefly explanation how to check if number is odd.
First try is something similar what @AseemYadav tried:
public static boolean isOdd(int i) {
return i % 2 == 1;
}
but as was mentioned in book:
when the remainder operation returns a nonzero result, it has the same
sign as its left operand
so generally when we have negative odd number then instead of 1
we’ll get -1
as result of i%2
. So we can use @Camilo solution or just do:
public static boolean isOdd(int i) {
return i % 2 != 0;
}
but generally the fastest solution is using AND operator like @lucasmo write above:
public static boolean isOdd(int i) {
return (i & 1) != 0;
}
@Edit
It also worth to point Math.floorMod(int x, int y);
which deals good with negative the dividend but also can return -1
if the divisor is negative
Ответы
Четное число – это целое число, которое делится без остатка на два. Поэтому, чтобы проверить четность числа в Java, нужно сравнить остаток от деления числа на два с нулём. Если остаток равен нулю – число четное. Создадим метод для проверки числа на четность:
class App {
public static boolean isEven(int number) {
return number % 2 == 0;
}
}
App.isEven(4); // true
App.isEven(7); // false
0
0
Добавьте ваш ответ
Рекомендуемые курсы
11 часов
Старт в любое время
14 часов
Старт в любое время
35 часов
Старт в любое время
Похожие вопросы
Сегодня мы рассмотрим небольшую программу для проверки числа на четность. Эта статья является частью раздела Java для начинающих.
Проверка числа на четность. Пример на Java
Итак, наша программа будет считывать введенное пользователем число из консоли. Далее это число проверяется на четность и в результате на консоль выводится сообщение типа «Число является четным» или «Число нечетное».
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
package ua.com.prologistic; import java.util.Scanner; public class CheckEvenOdd { public static void main(String args[]) { int num; System.out.println(“Введите число: “); //Введенное пользователем число в консоле хранится в переменной num Scanner input = new Scanner(System.in); num = input.nextInt(); // Если число делится на 2, то это четное число, иначе – нечетное // если остаток от деления равен нулю, то четное if ( num % 2 == 0 ) System.out.println(“Число четное”); else System.out.println(“Число нечетное”); } } |
Результат выполнения Java программы проверки числа на четность:
Введите число: 36 Число четное |
Еще раз запустим программу и введем другое (например, нечетное) число:
Введите число: 35 Число нечетное |
Вот такая простая Java-программа проверки числа на четность. Следите за обновлениями раздела для новичков.
Данная статья написана командой Vertex Academy. Это одна из статей из нашего “Самоучителя по Java.”
Условие задачи:
Напишите метод, который бы проверял, делится ли число на 2 без остатка или нет. Например,
- если число 4, тогда метод должен возвращать true
- если число 5, тогда метод должен возвращать false
- если число 6, тогда метод должен возвращать true
- и т.д.
Решение:
public class Test{ static boolean dividesByTwo(int a){ return (a%2==0); } public static void main(String[] args){ System.out.println( dividesByTwo(6) ); } } |
Если Вы запустите данный код на своем компьютере, то в консоли Вы увидите:
true
Комментарии к задаче:
Поскольку стоит задача написать метод, который бы проверял, делится ли число на 2 без остатка или нет. Значит, речь идет о том, что мы должны проверять число на четность/нечетность.
В этом нам поможет оператор деления по модулю. Мы рассматривали как работает данный оператор в статье “Деление по модулю в Java”.
Поэтому мы написали:
static boolean dividesByTwo(int a){ return (a%2==0); } |
То есть мы проверяем делится ли число на 2 или нет.
А далее просто вызвали метод и в консоль будет выведено true, поскольку число 6 делится на 2 без остатка
public static void main(String[] args){ System.out.println( dividesByTwo(6) ); } |
Надеемся – наша статья была Вам полезна. Есть возможность записаться на наши курсы по Java. Детальную информацию смотрите у нас на сайте.