Java: bool + int
C'è un modo per far funzionare Java con l'aggiunta e la valutazione booleana / intera? Più specificamente, C ++ ha una funzionalità appropriata che accorcia molte istruzioni if.
for (int i = 0; i < n; ++i)
cout << i;
È equivalente a
while (n--)
cout << n;
Oppure, invece di:
for (int i = 0; i < n; ++i)
if (x == y)
count++;
Si può avere
for (int i = 0; i < n; ++i)
count += (x==y);
C'è un modo per fare qualcosa di simile a quello in Java?
Risposte
È possibile utilizzare l'operatore ternario in Java per lo stesso effetto.
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);
}
}
Produzione:
0
1
Il codice viene letto più spesso che scritto. Sebbene sia possibile utilizzare l'operatore ternario, la semantica di questo si riduce ad aumentarecountxy solo se è uguale . Quindi il modo più leggibile per scrivere questo sarebbe usare:
for (int i = 0; i < n; ++i)
if (x == y) count++;
Fare trucchi come count += (x==y)in altre lingue è già una cattiva pratica poiché offusca la logica. Ottimizza per leggere, non per scrivere.