Java: bool + int
Oct 18 2020
Existe uma maneira de fazer o Java funcionar com adição e avaliação booleana / inteira? Mais especificamente, C ++ tem um recurso apropriado que encurta muitas instruções if.
for (int i = 0; i < n; ++i)
cout << i;
É equivalente a
while (n--)
cout << n;
Ou, em vez de:
for (int i = 0; i < n; ++i)
if (x == y)
count++;
Pode-se ter
for (int i = 0; i < n; ++i)
count += (x==y);
Existe uma maneira de fazer algo semelhante em Java?
Respostas
3 ArvindKumarAvinash Oct 18 2020 at 17:02
Você pode usar o operador ternário em Java para o mesmo efeito.
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);
}
}
Resultado:
0
1
Polygnome Oct 18 2020 at 17:06
O código é mais frequentemente lido do que escrito. Embora você possa usar o operador ternário, a semântica disso se resume a aumentarcountxy apenas se for igual . Portanto, a maneira mais legível de escrever isso seria usar:
for (int i = 0; i < n; ++i)
if (x == y) count++;
Fazer truques como count += (x==y)em outras linguagens é uma prática ruim, pois ofusca a lógica. Otimize para ler, não para escrever.
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino