Python-цикл внутри тернарного оператора

тернарный оператор java .

Основы Java. Урок 13: Тернарный оператор ?:

Нажми для просмотра

Рассматрив
аем
тернарную
операцию ?:,
которая
значительн
о
сокращает
код
оператора
if-then-else.
Оператор…
 
 
 
Тэги:
 
Уроки по Java. Тернарные операции в джава

Нажми для просмотра

Новое
видео по
джава!
Изучаем
тернарные
операции в
java ▻▻
Подписывай
ся на
наш …
 
 
 
Тэги:
 
Условный тернарный оператор что это. Как работает. Как использовать. C ++ Для начинающих. Урок #69

Нажми для просмотра

Понравилос
ь видео или
оказалось
полезным?
Подпишись!
словный
тернарный
оператор
что это.
Как
работает….
 
 
 
Тэги:
 
Java обучение. Урок 2 If, Switch, Тернарный оператор Development in android

Нажми для просмотра

Java
обучение.
Урок 2 If,
Switch,
Тернарный
операторВ
этом Java
уроке: мы
познакомим
ся с такими
условными
оператора..
.
 
 
 
Тэги:
 
Уроки Java для начинающих | #7 — Условные операторы

Нажми для просмотра

1) Урок на
сайте itProger:
В этом
уроке мы
изучим
условные
операторы
в языке Java
 
 
 
Тэги:
 
Условный оператор (тернарный) на JAVA

Нажми для просмотра

Цели урока:
Решать
задачи
наусловный
оператор
Различать
полное и не
полное
ветвление.
 
 
 
Тэги:
 
Java для начинающих. Урок 6: Условный оператор if.

Нажми для просмотра

МОЙ НОВЫЙ
КУРС: На
этом уроке
Java для
начинающих
мы
познакомим
ся …
 
 
 
Тэги:
 
Java для начинающих. Урок 10: Оператор switch.

Нажми для просмотра

МОЙ НОВЫЙ
КУРС: На
этом уроке
Java для
начинающих
мы
рассмотрим
 …
 
 
 
Тэги:
 
8. JavaScript для начинающих. Тернарный оператор (Ternary operator)

Нажми для просмотра

В данном
видео-урок

рассматрив
ается
условный
оператор if
или, как
его ещё
называют,
оператор
ветвления..
..

 
 
 
Тэги:
 
Java SE. Урок 10. Условный оператор if или оператор ветвления

Нажми для просмотра

Битовое
представле
ние
десятичных
чисел.
Битовые
операции в
Java: И, ИЛИ,
НЕ, XOR
(исключающ
е ИЛИ).
Включение,.
..
 
 
 
Тэги:
 
Java для тебя 9: битовые операции И, ИЛИ, НЕ, XOR

Нажми для просмотра

Немного
про
тернарный
оператор,
венгерскую
нотацию и
другую
теорию из
Шилдта.
 
 
 
Тэги:
 
День 4. Тернарный оператор в Java.

Нажми для просмотра

В этом
видео мы
познакомим
ся с
тернарным
оператором
и
конструкци
ей switch case.
Ссылки: …
 
 
 
Тэги:
 
Основы JavaScript. #12 Тернарный оператор. Switch case.
Уроки Javascript с нуля. Урок 4 — Условные операторы if, else, else if. Тернарный оператор ?

Нажми для просмотра

В данном
видеоуроке
вы
познакомит
есь с
альтернати
вным
тернарным
оператором
знак
вопроса
который
вам…
 
 
 
Тэги:
 
Урок 20 — тернарный оператор знак вопроса

Нажми для просмотра

В данном
видео
рассматрив
аются
побитовые
операции в
Java, а так же
операторы,
которые
при этом
применя…
 
 
 
Тэги:
 
Основы Java. Урок 9: Побитовые (поразрядные) операторы Java

Нажми для просмотра

В данном
видео мы
знакомимся
с
особенным
оператором
языка C#,
который
называется
тернарный
оператор.Н
зван…
 
 
 
Тэги:
 
Уроки C#. Тернарный оператор

Нажми для просмотра

В данном
занятии мы
познакомим
ся с
тернарным
оператором
и его
применение
м в
некоторых
случаях, а
затем…
 
 
 
Тэги:
 
Программирование на C. Урок 11. Тернарный оператор

Нажми для просмотра

5-й урок из
курса
«Програм
мирование
на Java для
начинающих
» в
котором мы
разберемся
с тем, что
такое
поразрядны
 
 
 
Тэги:
 
Java для начинающих — Урок №5: Поразрядные операции и побитовые сдвиги

Нажми для просмотра

Рассматрив
аем
операторы
сравнения
в Java.
вКонтакте:
Плейлист: .
..
 
 
 
Тэги:
 
Основы Java. Урок 11: Операторы сравнения Java» rel=»spf-prefetch

Example — Nested Ternary

But what if our movie theater from above gives a discount to students and seniors?

We can nest ternary operators to test multiple conditions.

For this scenario assume tickets are: $12 for the general public, $8 for students, and $6 for seniors.

Here’s what the code for a Senior citizen would look like:

let isStudent = false;let isSenior = true;let price = isStudent ? 8 : isSenior ? 6 : 10console.log(price);// 6

There’s a lot going on in this code, so lets break it down:

  1. First we check to see if our patron is a student. Since is false, only the code after the first is executed. After the we have a new conditional:
  2. Our second conditional tests — since this is true, only the code after the but before the is executed.
  3. is then assigned the value of which which we later log to the screen.

Подробный разбор тернарного оператора

Первый операнд в тернарном операторе должен быть логическим или же представлять собой логическое выражение с результатом. Если первый операнд true, то тернарный оператор возвращает второй операнд, иначе (если первый операнд false) — возвращает третий операнд.

Синтаксис тернарного оператора в Java:

результат = выражение ? значение1 : значение2;

Если выражение true, то значение1 присваивается переменной результат, иначе значение2 присваивается переменной результат.

Давайте посмотрим использование тернарного оператора в небольшой Java-программе:

TernaryOperator.java

Java

package ua.com.prologistic.util;

public class TernaryOperator {

public static void main(String[] args) {

System.out.println(getMinValue(4,10));

System.out.println(getAbsoluteValue(-10));

System.out.println(invertBoolean(true));

String str = «Austria»;
String data = str.contains(«A») ? «Str содержит букву ‘A'» : «Str не содержит букву ‘A'»;
System.out.println(data);

int i = 10;
switch (i){
case 5:
System.out.println(«i=5»);
break;
case 10:
System.out.println(«i=10»);
break;
default:
System.out.println(«i не равно 5 или 10»);
}

System.out.println(
(i==5) ? «i=5»:((i==10) ? «i=10″:»i не равно 5 или 10»)
);
}
// инвертирует булевое значение:
// если b == true, то возвращает false, иначе возвращает true
private static boolean invertBoolean(boolean b) {
return b ? false : true;
}

private static int getAbsoluteValue(int i) {
return i

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

packageua.com.prologistic.util;

publicclassTernaryOperator{

publicstaticvoidmain(Stringargs){

System.out.println(getMinValue(4,10));

System.out.println(getAbsoluteValue(-10));

System.out.println(invertBoolean(true));

Stringstr=»Austria»;

Stringdata=str.contains(«A»)?»Str содержит букву ‘A'»»Str не содержит букву ‘A'»;

System.out.println(data);

inti=10;

switch(i){

case5

System.out.println(«i=5»);

break;

case10

System.out.println(«i=10»);

break;

default

System.out.println(«i не равно 5 или 10»);

}

System.out.println(

(i==5)?»i=5″((i==10)?»i=10″»i не равно 5 или 10″)

);

}

// инвертирует булевое значение:

// если b == true, то возвращает false, иначе возвращает true

privatestaticbooleaninvertBoolean(booleanb){

returnb?falsetrue;

}

privatestaticintgetAbsoluteValue(inti){

returni?-ii;

}

privatestaticintgetMinValue(inti,intj){

return(ij)?ij;

}

}

Результат выполнения программы:

Java

4
10
false
Str содержит букву ‘A’
i=10
i=10

1
2
3
4
5
6

4
10
false

Strсодержитбукву’A’

i=10

i=10

Как видим, тернарный оператор в Java используется для небольших выражений, упрощает код и уменьшает его количество.

5 ответов

99

Лучший ответ

Просматривая раздел 7.14 «Условные обозначения языка С# 5: Условный оператор», мы можем видеть следующее:

Другими словами: он пытается определить, может ли x и y быть преобразован в eachother, а если нет, возникает ошибка компиляции. В нашем случае и не имеют явного или неявного преобразования, поэтому он не будет компилироваться.

Сравните это с :

И, глядя на , мы видим, что он пытается найти общего предка, который будет служить типом, используемым для вызова, который присваивает ему значение . является приемлемым аргументом, поэтому вызов будет работать.

Ответ дал

05 фев. 2016, в 20:30
Поделиться

79

Данные ответы хороши; Я бы добавил к ним, что это правило С# является следствием более общего руководства по проектированию. При запросе вывести тип выражения из одного из нескольких вариантов, С# выбирает уникальные лучшие из них. То есть, если вы дадите С# некоторые варианты, такие как «Жираф, млекопитающее, животное», тогда он может выбрать самый общий — Animal — или он может выбрать наиболее специфичный — Жираф — в зависимости от обстоятельств. Но он должен выбрать один из вариантов, которые он фактически дал. С# никогда не говорит: «Мой выбор между Котом и Собакой, поэтому я выберу, что Animal — лучший выбор». Это был не выбор, поэтому С# не может его выбрать.

В случае тройного оператора С# пытается выбрать более общий тип int и string, но ни один из них не является более общим типом. Вместо того, чтобы выбирать тип, который не был выбран в первую очередь, подобно объекту, С# решает, что тип не может быть выведен.

Я также отмечаю, что это соответствует другому принципу дизайна С#: если что-то не так, расскажите разработчику. Язык не говорит: «Я собираюсь угадать, что вы имели в виду и путаться, если смогу». Язык говорит: «Я думаю, что вы написали что-то запутанное здесь, и я расскажу вам об этом».

Кроме того, я отмечаю, что С# не указывает на переменную на назначенное значение, а на другое направление. С# не говорит «вы назначаете объектную переменную, поэтому выражение должно быть конвертируемым в объект, поэтому я буду уверен, что оно». Скорее, С# говорит, что «это выражение должно иметь тип, и я должен уметь выводить, что тип совместим с объектом». Поскольку выражение не имеет типа, возникает ошибка.

Ответ дал

06 фев. 2016, в 00:35
Поделиться

22

Что касается части генериков:

В С# компилятор пытается преобразовать правые части выражения в некоторый общий тип; поскольку и — два разных построенных типа, нельзя преобразовать их в другой.

В Java компилятор пытается найти общий супертип вместо преобразования, поэтому компиляция кода подразумевает неявное использование wildcards и стирать стили;

имеет тип компиляции (на самом деле это может быть также или , в зависимости от контекста использования, поскольку они оба являются общими типичными супертипами) и тип времени выполнения raw (поскольку общий сырой супертип).

Например (проверьте его самостоятельно),

Ответ дал

05 фев. 2016, в 19:37
Поделиться

5

В Java и С# (и большинстве других языков) результат выражения имеет тип. В случае тройного оператора существуют два возможных подвыражения, оцененных для результата, и оба должны иметь один и тот же тип. В случае Java переменная может быть преобразована в путем автобоксинга. Теперь, поскольку оба и наследуются от , их можно преобразовать в один и тот же тип путем простого сужения преобразования.

С другой стороны, в С# a является примитивным и не подразумевается преобразование в или любое другое .

Ответ дал

05 фев. 2016, в 19:58
Поделиться

5

Это довольно просто. Нет никакого неявного преобразования между строкой и int. тройной оператор требует, чтобы последние два операнда имели один и тот же тип.

Try:

Ответ дал

05 фев. 2016, в 19:36
Поделиться

Ещё вопросы

  • 1667Как создать файл Excel (.XLS и .XLSX) в C # без установки MS Office?
  • 1197Статическое чтение только против const
  • 933Алгоритм дерева суффиксов Укконена на простом английском
  • 795Entity Framework 5 Обновление записи
  • 507Что эквивалентно финалу Java в C #?
  • 452У кого-нибудь есть тесты (код и результаты), сравнивающие производительность приложений Android, написанных на Xamarin C # и Java?
  • 466Java эквивалентно #region в C #
  • 4661Есть ли в Python троичный условный оператор?
  • 26Есть ли в Matlab условный оператор IF, который можно поместить INLINE, как VBA IIF
  • 234Как мне использовать условный оператор (? 🙂 в Ruby?

Expression Evaluation

When using a Java ternary construct, only one of the right-hand side expressions i.e. either expression1 or expression2 is evaluated at runtime.

We can test that out by writing a simple JUnit test case:

@Test
public void whenConditionIsTrue_thenOnlyFirstExpressionIsEvaluated() {
    int exp1 = 0, exp2 = 0;
    int result = 12 > 10 ? ++exp1 : ++exp2;
    
    assertThat(exp1).isEqualTo(1);
    assertThat(exp2).isEqualTo(0);
    assertThat(result).isEqualTo(1);
}

Our boolean expression 12 > 10 always evaluates to true, so the value of exp2 remained as-is. Similarly, let’s consider what happens for a false condition:

@Test
public void whenConditionIsFalse_thenOnlySecondExpressionIsEvaluated() {
    int exp1 = 0, exp2 = 0;
    int result = 8 > 10 ? ++exp1 : ++exp2;

    assertThat(exp1).isEqualTo(0);
    assertThat(exp2).isEqualTo(1);
    assertThat(result).isEqualTo(1);
}

The value of exp1 remained untouched, and the value of exp2 was incremented by 1.

Общий синтаксис

Учитывая эти примеры, видно, что общий синтаксис выглядит следующим образом:

result = testCondition ? value1 : value2

Как описано в Oracle documentation, логика применения состоит в том, что «Если testCondition имеет значение true, присвойте значение value1 результату; в противном случае присвойте значение value2 результату».

Вот еще два примера, которые демонстрируют это очень ясно. Вот пример использования значения с плавающей запятой:

// результату присваивается значение 1.0 
float result = true ? 1.0f : 2.0f

Использования String:

// результату присваивается значение «Извини, чувак, это ложь».

String result = false ? "Dude, that was true" : "Sorry Dude, it's false";

testCondition может быть либо простым логическим значением, либо может быть оператором, который оценивает логическое значение, как оператор (a

Еще один пример, который я видел в исходном коде проекта под названием Abbot:

private static final int subMenuDelay = Platform.isOSX() ? 100 : 0;

Конструкция «IF (COND) THEN Statement (s) ELSE Statement (s)» сама по себе является выражением.

«COND ? Statement : Statement» является выражением, и, следовательно, может находиться справа от присваивания.

Можно использовать, чтобы избежать репликации вызова функции с большим количеством параметров: .

Далее приведен пример, в котором условный оператор встроен в строку, по существу используемый для правильного построения String в зависимости от того, является ли x единственным или множественным числом:

returnString = "There " + (x > 1 ? " are " + x + " cookies" : "is one cookie") + " in the jar."

Пример, демонстрирующих аналогичную операцию в String, на этот раз для правильного вывода приветствия для определенного пола человека:

returnString = "Thank you " + (person.isMale() ? "Mr. " : "Ms. ") + person.getLastName() + "."

Вот исходный код класса Java, который я использовал для тестирования некоторых примеров, показанных в этом руководстве:

public class JavaTernaryOperatorExamples
{
 public static void main(String[] args)
  {
    // минимальное значение
    int minVal, a=3, b=2;
    minVal = a  1 ? " are " + x + " cookies" : "is one cookie") + " in the jar.";
    System.out.println(out);

  }
}

Оцени статью

Оценить

Средняя оценка / 5. Количество голосов:

Видим, что вы не нашли ответ на свой вопрос.

Помогите улучшить статью.

Спасибо за ваши отзыв!

Оператор переключения в javaScript — switch

Оператор javascript служит для проверки переменной на множество значений:

Проверяется значение переменной или выражения: в каждом case проверяется одно из значений, в случае подходящего значения выполняется тот или иной блок операторов, соответствующий данному case.

Блок, начинающийся со служебного слова можно опустить. Операторы блока будут выполнены в случае, если ни одно из перечисленных значений во всех case не подходит.

Важно: Оператор обязателен после каждого рассмотренного значения переменной (после каждого case); если его не использовать, то будут выведены все, расположенные ниже операторы

Сравним с оператором IF:

1
2
3
4
5
6
7
8
9
10
11
12
13
var a = 2;
switch(a) 
{
	case  // if (a === 0)
	case 1 // if (a === 0)
		alert("Ноль или один"); // тогда выводим ...
		break;
	case 2 // if (a === 2)
	        alert("Два"); // тогда выводим ...
		break;
	default // else
		alert("Много"); // иначе выводим ...
}

Как сгруппировать несколько вариантов?

Для выполнения одних и тех же операторов возможно группировка нескольких case. Как в примере выше:

...
case  
case 1 
	alert("Ноль или один"); 
	break;
...

При и выполняется один и тот же оператор:

Пример 4: Запрашивать у пользователя ввести цвет. Выводить перевод на английский язык введенного цвета. Для цвета «синий» и «голубой» выдавать одно и то же значение.
Решение:

  • Создайте веб-страницу с html-скелетом и тегом script.
  • Инициализируйте переменную color значением, введенным пользователем в модальное окно:
var color = prompt("Какой цвет?");

Проверьте значение переменной с помощью конструкции switсh, выводя на каждое значение — соответствующий перевод:

2
3
4
5
6
7
8
9
switch (color) {
  case "красный" 
    alert("red");
    break;
  case "зеленый"
    alert("green");
    break;
  // ...

Если переменная color имеет значение «красный», то вывести в модальное окно перевод — «red» и выйти из конструкции (). Если переменная color имеет значение «зеленый», то вывести в модальное окно перевод — «green» и выйти из конструкции (break;).
Для цветов «синий» и «голубой» выполните группировку:

 // ...
 case "синий"
 case "голубой"
    alert("blue");
    break;
 // ...

Если переменная color имеет значение «синий» или переменная color имеет значение «голубой», то вывести в модальное окно перевод — «blue» и выйти из конструкции ().
Организуйте вывод для тех цветов, которые не предусмотрены программой:

 // ...
  default
    alert("y нас нет сведений по данному цвету")
} // конец switch

Протестируйте сценарий в браузере.

Задание Js 3_6. Найдите и исправьте ошибки в следующем фрагменте кода:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var number = prompt("Введите число 1 или 2:");
switch (number) { 
case "1"
  {
    document.write("Один");
  };
    break;
case "2"
  {
    document.write("Два");
  };
  break;
default
  {
    document.write("Вы ввели значение, отличное от 1 и 2");
  };
}

Задание Js 3_7. Что выведется на экране при выполнении следующего кода?:

1
2
3
4
5
6
7
8
9
10
11
12
13
var value = "2";
 switch (value) {
 case "1"
 case "2"
 case "3"
 document.write("Hello");
 break;
 case "4"
 case "5" 
 document.write("World");
 default
 document.write("Error");
 }

Задание Js 3_8. У пользователя запрашивать число – количество ворон на ветке. В зависимости от введенного числа (не более 10), выводить сообщение:

- На ветке сидит 1 ворона
- На ветке сидит 4 вороны
- На ветке сидит 10 ворон

Рекомендации:

  1. В зависимости от введенного числа, меняется окончание у слова «ворона».
  2. Для проверки использовать оператор javascript.
  3. Сохраните данную страницу в папке результатов (она пригодится для дальнейших работ).

Вопросы для самоконтроля:

  1. В каком случае целесообразно в качестве условного оператора использовать конструкцию switch?
  2. Для чего служит блок в операторе switch?
  3. Обязательно ли использование оператора в конструкции switch?
  4. Как осуществляется группировка для нескольких вариантов значений в операторе switch?

Starting With the Basics — The if statement

Using a conditional, like an statement, allows us to specify that a certain block of code should be executed if a certain condition is met.

Consider the following example:

We have a object that consists of a , , and property.

let person = {  name: 'tony',  age: 20,  driver: null};

We want to test if the age of our is greater than or equal to . If this is true, they’re old enough to drive and should say . If this is not true, should be set to .

We could use an statement to accomplish this:

if (person.age >= 16) {  person.driver = 'Yes';} else {  person.driver = 'No';}

But what if I told you we could do the same exact thing in just one line of code? Well, here it is:

person.driver = person.age >=16 ? 'Yes' : 'No';

This shorter code yields us the same result of

Now that you’ve seen the conditional ternary operator in action, we can explore how it works!

Example — Multiple operations

It is also possible to run multiple operations within a ternary. To do this, we must separate the operations with a comma. You can also, optionally, use parenthesis to help group your code:

let isStudent = true;let price = 12;isStudent ? (  price = 8,  alert('Please check for student ID')) : (  alert('Enjoy the movie'));

In the above example, the of our movie is already set to $12. If is true, we adjust the price down to $8, then send an alert to have the cashier check for student ID. If is false, the above code is skipped, and we simply alert to enjoy the movie.

Closing Notes:

Thanks for reading! If you’re ready to finally learn Web Development, check out: The Ultimate Guide to Learning Full Stack Web Development in 6 months.

If you’re working towards becoming a better JavaScript Developer, check out: Ace Your Javascript Interview — Learn Algorithms + Data Structures.

Example — Driver Age

We’ll take a moment to revisit the initial example in this article:

let person = {  name: 'tony',  age: 20,  driver: null};person.driver = person.age >=16 ? 'Yes' : 'No';

The most important thing to note is the order of operations. Lets add some parenthesis to help you visualize the order in which code is executing:

person.driver = ((person.age >=16) ? 'Yes' : 'No';)

As you can hopefully now visualize, the very first thing that happens is our conditional is checking to see if is or .

Since is greater than , this evaluates to . Here’s where we are now:

person.driver = (true ? 'Yes' : 'No';)

Since the condition of our conditional is , the value between the and is returned. In this case, that is .

Now that we have our return value, the final thing to do is to set it equal to our variable:

person.driver = 'Yes';

Awesome! Now lets move on to some more complex examples.

Инструкции If…Else

Посмотрим на следующий код, определяющий надежность пароля:

let strength = null;if (password.length > 7) {  strength = 'Strong';} else {  strength = 'Weak';}

Его цель очень проста — проверить, содержит ли пароль более 7 символов. Если да, то присвоить переменной значение , если нет — .

Предыдущий код можно сократить до следующего:

const strength = (password.length > 7) && 'Strong' || 'Weak';

Этот фрагмент кода делает то же самое, что и предыдущий, но в одной строке. Такой код уже выглядит довольно хорошо. Следующий фрагмент проверяет вычисление условного выражения.

let password = 'long_password';console.log(password.length > 7); // trueconsole.log(password.length > 7 && 'Strong'); // "Strong"console.log(password.length > 7 && 'Strong' || 'Weak'); // "Strong"password = 'short';console.log(password.length > 7); // falseconsole.log(password.length > 7 && 'Strong'); // falseconsole.log(password.length > 7 && 'Strong' || 'Weak'); // "Weak"

Для написания условных выражений такого рода существует способ получше — использование условного оператора, также называемого тернарным оператором. Его синтаксис выглядит следующим образом:

// If condition is truthy, evaluate and return A,// otherwise evaluate and return Bcondition ? A : B

Исходя из этого, предыдущий пример кода может быть переписан с использованием тернарного оператора как указано ниже:

const strength = (password.length > 7) ? 'Strong' : 'Weak';

Хотя фрагмент кода, использующий логические операторы, работает аналогично фрагменту кода с применением тернарного оператора (для данного примера), важно знать, что они не являются взаимозаменяемыми. Гораздо безопаснее использовать тернарный оператор для таких случаев, за исключением того, когда вы действительно знаете, что делаете

Гораздо безопаснее использовать тернарный оператор для таких случаев, за исключением того, когда вы действительно знаете, что делаете.

Рассмотрим следующий код, чтобы понять опасность применения логических операторов в подобных случаях:

// LOGICAL OPERATORS// If condition is truthy and A is truthy, return A,// otherwise evaluate and return B// Danger: A will never be returned if it is falsycondition && A || B// TERNARY OPERATOR// If condition is truthy, evaluate and return A,// otherwise evaluate and return Bcondition ? A : B

Вот еще одна хорошо известная условная инструкция, которая обычно встречается в кроссбраузерных AJAX-библиотеках.

let xmlhttp = null;if (window.XMLHttpRequest) {  // Modern browsers  xmlhttp = new XMLHttpRequest();} else if (window.ActiveXObject) {  // Older versions of Internet Explorer (IE   xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');}

При помощи логических операторов предыдущий фрагмент кода можно переписать следующим образом (отступы для читабельности):

const xmlhttp = window.XMLHttpRequest && new XMLHttpRequest()  || window.ActiveXObject && new ActiveXObject('Microsoft.XMLHTTP')  || null;

Используя тернарный оператор:

const xmlhttp = window.XMLHttpRequest  ? new XMLHttpRequest()  : window.ActiveXObject    ? new ActiveXObject('Microsoft.XMLHTTP')    : null;

Python Ternary Operator Example

Ternary operators in Python are terse conditional expressions. These are operators that test a condition and based on that, evaluate a value. This was made available since PEP 308 was approved and is available ever since version 2.4. This operator, if used properly, can reduce code size and enhance readability.Do you know about Python Comparison Operator

Let’s write code to compare two integers.

>>> a,b=2,3
>>> if a>b:
        print("a")
else:
        print("b")

b

b. Equivalent code with Ternary operator

So let’s try doing the same with ternary operators:

>>> a,b=2,3
>>> print("a" if a>b else "b")

bVoila! Done in one line. Python first evaluates the condition. If true, it evaluates the first expression; otherwise, it evaluates the second. There is a lazy evaluation. It also evaluates the conditions left to right.You must learn about Python Data Structures

Ссылка на основную публикацию