Java: bool + int
Czy istnieje sposób, aby Java działała z dodawaniem i oceną wartości logicznych / całkowitych? Mówiąc dokładniej, C ++ ma odpowiednią funkcję, która skraca wiele instrukcji if.
for (int i = 0; i < n; ++i)
cout << i;
Jest równa
while (n--)
cout << n;
Lub zamiast:
for (int i = 0; i < n; ++i)
if (x == y)
count++;
Można mieć
for (int i = 0; i < n; ++i)
count += (x==y);
Czy istnieje sposób na zrobienie czegoś podobnego do tego w Javie?
Odpowiedzi
Możesz użyć operatora trójargumentowego w Javie dla tego samego efektu.
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);
}
}
Wynik:
0
1
Kod jest częściej czytany niż pisany. Chociaż możesz użyć operatora trójskładnikowego, semantyka tego sprowadza się do zwiększaniacountxy tylko wtedy, gdy jest równe . Więc najbardziej czytelnym sposobem napisania tego byłoby użycie:
for (int i = 0; i < n; ++i)
if (x == y) count++;
Robienie sztuczek, jak count += (x==y)w innych językach, jest już złą praktyką, ponieważ zaciemnia logikę. Optymalizuj pod kątem czytania, a nie pisania.