O que to fazendo de errado?
int a = 10;
(a<20)? a++ : a--;
pq não funfa?
O que to fazendo de errado?
int a = 10;
(a<20)? a++ : a--;
pq não funfa?
Fala brow,
Seguinte… A questao aqui nao eh o operador ternario, mas sim o incremento…
Quando voce usa a++, ele “usa” a variavel e DEPOIS incrementa (ou decrementa, se for a–)
Entao, se voce fizer
int a = 10;
// a < 20 = TRUE, entao, retorna a++, mas ele imprime o a, e depois disso, incrementa ele.
System.out.println((a<20)? a++ : a--);
Se voce fizer:
int a = 10;
// a < 20 = TRUE, entao, incrementa a e depois disso, imprime...
System.out.println((a<20)? ++a : --a);
Resumo:
a++ //> Usa a e depois incrementa;
++a // > incrementa e depois usa;
Abraco!
Calma... Não é isso não kenneth. Você está tentando adivinhar o que o cake quis fazer.
Quando o operador ternário é usado, OBRIGATORIAMENTE você TEM QUE usar o retorno dele, ou seja, atribuir a alguma variável ou usar em algum método.
E ele também obrigatoriamente TEM QUE gerar um valor de retorno.
int a = 10;
int b = (a<20)? a++ : a--;
System.out.println( (a<20)? a++ : a-- );
public static void main ( String[] args ) {
int a = 10;
int b = a < 20? teste1() : teste2();
}
public static int teste1() { return 1; }
public static int teste2() { return 2; }
public static void main ( String[] args ) {
int a = 10;
int b = a < 20? teste1() : teste2();
}
public static void teste1() {}
public static void teste2() {}
[]´s
Entendi…
Me passou pela cabeca que o cake teria posto ali uma “forma reduzida” do problema…
Mas nao sabia dessas obrigatoriedades de ter que usar o retorno…
Mals pela resposta errada
=]
E valeu pela certa!
Abraco!