Проверка числа на четность и нечетность. Введение
В работе, я уже неоднократно сталкивался с необходимостью проверки числа на четность и нечетность, но почему-то не придавал этому особого значения, поэтому не затрагивал данную тему ранее. Но мне уже несколько раз присылали вопросы и просили помочь с задачами, в которых проверка четности числа может помочь в реализации. Поэтому я решил описать проблему и решение в статье.
Рассмотрим самую распространенную задачу, в которой проверка четности числа может все расставить на свои места. Допустим, у нас имеется массив данных, в котором хранится имена и фамилии людей. Необходимо вывести эти данные таким образом, чтобы каждое имя и фамилия начинались с новой строки и каждая вторая строка имела отступ 20 пикселей.
Решение задачи:
Необходимо при выводе каждого элемента массива считать номер элемента, если он четный, то есть 2, 4, 6 и тд, то будем делать отступы.
Проверка числа на четность и нечетность. Код
// массив данных $array_users = array( "Иван Иванов", "Иван Петров", "Петр Иванов", "Петр Петров", "Сидор Иванов", "Сидор Петров" ); // вывод данных $num = 1; foreach($array_users as $value){ // проверяем четность if(($num % 2) == 0){ // если четное, то делаем отступ echo "<span style='padding-left: 20px;'>$value</span><br/>"; }else{ // если не четное, то просто выводим echo "<span>$value</span><br/>"; } $num ++; }
Задача решена.
Вся суть сводится к тому, что необходимо проверить остаток от деления числа на два. если остаток равен нулю, значит число четное.
$a = 5; if(($a % 2) == 0){ echo "Число четное"; }else{ echo "Число не четное"; }
С помощью такого же кода, можно добавлять стили для каждого третьего, каждого четвертого и тд элемента, только уже сравнивать остаток после деления на 2, 3, 4 и тд.
if(($a % 2) == 0)
Я так понимаю, что если будет возвращаться ноль, то в IF это будет считаться FALSE, а значит код ещё короче можно сделать.
Есть способ гораздо эффективнее. У нечётных чисел самый младший бит = 1, у чётных — 0.
function IsOdd($_iNumber)
// Проверяет число на нечётность.
{
return $_iNumber & 1;
}
function IsEven($_iNumber)
// Проверяет число на чётность.
{
return !($_iNumber & 1);
}