6. Тернарная операция

mygedz

Администратор
Сообщения
588
Оценка реакций
62
Данную тему уже обсуждали с pisikot. Решил вынести в отдельную тему.
Синтаксис следующий:
[первый операнд - условие] ? [второй операнд] : [третий операнд]
В зависимости от условия, тернарная операция возвращает второй или третий операнд:
  • если условие равно TRUE, то возвращается второй операнд
  • если условие равно FALSE, то возвращается третий операнд

Приведу пример:
Java:
int x=3;
int y=2;
int z = x<y? (x+y) : (x-y);
System.out.println(z); //1
Почему 1 спросите?:) Расписываю:
Объявлены целочисленные переменные x и y и им присвоены значения
Java:
int x=3;
int y=2;
первый операнд - условие
x<y
то есть 3<2, условие возвращает нам значение FALSE
второй
операнд
(x+y)
третий операнд
(x-y)
И следуя правилу:
  • если условие равно FALSE, то возвращается третий операнд
в нашем случае это: 3-2=1
 
Последнее редактирование:

pisikot

Пользователь
Сообщения
73
Оценка реакций
51
Определим четное или нечетное рандомное число в диапазоне 1 до 100
Java:
import java.util.Random;

public class Task01 {
    public static void main(String[] args) {

        Random random = new Random();
        int number = random.nextInt(99) + 1;
        String result = (number % 2 == 0) ? "четное" : "нечетное";
        System.out.println(number + " - " + result);
    }
}

Java:
random.nextInt(99) + 1
+1 чтобы не было 0, т.е. когда выпадет рандомно 0 то произойдет 0 + 1 = 1
  • int nextInt(int n) - возвращает следующее случайное значение типа int в диапазоне от 0 до n
 

pisikot

Пользователь
Сообщения
73
Оценка реакций
51
Создаем объект (экземпляр) класса Random
Присваиваем ему имя random и вызываем конструктор без параметров Random()
Теперь когда мы создали новый объект у нас есть доступ к его методам, например методу в примере nextInt

Это уже ООП, хотя еще вариант случайное число получить
Метод Math.random() но с ним не очень удобно... т.к. он возвращает double значение с положительным знаком, больше чем или равно 0.0 и меньше чем 1.0 (0.0 <= Math.random() < 1.0).

Java:
System.out.println("случайное число: " + Math.random());
А что бы нам получить например от 1 до 10 нам придется привести к int прибавить 1 и умножить на 10

Java:
        int a = 1; // Начальное значение диапазона - "от"
        int b = 10; // Конечное значение диапазона - "до"

        int random_number1 = a + (int) (Math.random() * b);
        System.out.println("случайное число: " + random_number1);
 

pisikot

Пользователь
Сообщения
73
Оценка реакций
51
четное не четное в окне)

Java:
import javax.swing.*;

public class MakeChoice {
    public static void main(String[] args) {
        int number = Integer.parseInt(JOptionPane.showInputDialog("Введите число: "));
        String text = number % 2 == 0 ? "четное" : "нечетное";
        JOptionPane.showMessageDialog(null, "число: " + number + " - " + text);
    }
}
 
Верх Низ