Java: bool + int
Oct 18 2020
Есть ли способ заставить Java работать с логическим / целочисленным сложением и оценкой? В частности, в C ++ есть соответствующая функция, которая сокращает многие операторы if.
for (int i = 0; i < n; ++i)
cout << i;
Эквивалентно
while (n--)
cout << n;
Или вместо:
for (int i = 0; i < n; ++i)
if (x == y)
count++;
Можно иметь
for (int i = 0; i < n; ++i)
count += (x==y);
Есть ли способ сделать что-то подобное в Java?
Ответы
3 ArvindKumarAvinash Oct 18 2020 at 17:02
Вы можете использовать тернарный оператор в Java для того же эффекта.
public class Main {
public static void main(String[] args) {
int x = 5, y = 10, count = 0;
count += x == y ? 1 : 0;
System.out.println(count);
x = 10;
count += x == y ? 1 : 0;
System.out.println(count);
}
}
Вывод:
0
1
Polygnome Oct 18 2020 at 17:06
Код чаще читают, чем пишут. Хотя вы можете использовать тернарный оператор, его семантика сводится к увеличениюcountxy только при равенстве . Итак, наиболее читаемый способ написать это - использовать:
for (int i = 0; i < n; ++i)
if (x == y) count++;
Выполнение трюков, как count += (x==y)на других языках, - это уже плохая практика, поскольку это запутывает логику. Оптимизируйте для чтения, а не для записи.