Ola Pessoal!
Alguém pode me dizer o que é esse conceito em JAVA -> operador condicional ternário(ternary operator)?
Desde já agradeço.
Ola Pessoal!
Alguém pode me dizer o que é esse conceito em JAVA -> operador condicional ternário(ternary operator)?
Desde já agradeço.
é uma forma compacta de realizar um if-else
a sintaxe seria:
para a expressão:
if (a > 0)
b = 1;
else
b = 2;
com o ternário ficaria:
b = (a > 0) ? 1 : 2;
a sintaxe é: (Expressão) ? ValorTrue : ValorFalse
É um operador semelhante a um if/else, por exemplo:
? <retorno caso condição true> :
System.out.println(1 == 1 ? "Verdadeiro" : "False");
Com if else:
if(1 == 1)
System.out.println("Verdadeiro")
else
System.out.println("Falso")
[]'s
o operador ternario é uma forma de você colocar uma condição no seu código, acho que te mostrando um exemplo é mais facil de explicar.
…
int valorA = 1;
int result = (valorA == 1)?3:2;
condição = (valorA == 1)
? = indica o final da condição.
3 = valor se a condição for verdadeira.
: = separação do valor verdadeiro e do valor falso.
2 = valor para a condição falsa.
neste exemplo result receberá 3.
.
Boa tarde…desculpem ressuscitar um tópico antigo…mas já que o assunto já havia sido mencionado preferi postar minha dúvida aqui mesmo.
No caso de eu ter um condição mais complexa? Ficaria como?
Exemplo
void contemFuncionario(Funcionario f){
for (Funcionario y : empregados) {
System.out.println((y.nome == f) ? "Esta pessoa eh funcionária" : "Esta pessoa não é funcionária");
}
O exemplo acima está errado, claro, pq não posso converter boolean pra string.
Eu queria apenas pegar o nome de um funcionário meu em um array e comparar com um nome que eu passar para este método e saber se este funcionário está ou não no meu array.
Obrigado!
No seu caso, seria algo mais ou menos assim:
System.out.println(
y.nome.equals (f.getNome()) ?
"Esta pessoa eh funcionária"
: "Esta pessoa não é funcionária");
acho um topico bacana pra deixar fixo alguns operadores isso ajuda muito por exemplo o proprio
for (Funcionario y : empregados)
muita gente nao intende bem como funciona
Tenta isso… Lembrando que Strings nao devem ser comparadas com == a menos que queira saber se apontam para o mesmo Objeto…
void contemFuncionario(Funcionario f){
for (Funcionario y : empregados) {
System.out.println((y.nome.equals(f.nome)) ? "Esta pessoa eh funcionária" : "Esta pessoa não é funcionária");
}
Abs
[quote=adriano_si]Tenta isso… Lembrando que Strings nao devem ser comparadas com == a menos que queira saber se apontam para o mesmo Objeto…
void contemFuncionario(Funcionario f){
for (Funcionario y : empregados) {
System.out.println((y.nome.equals(f.nome)) ? "Esta pessoa eh funcionária" : "Esta pessoa não é funcionária");
}
Abs ;)[/quote]
Valeu adriano!!
Funcionou direitinho!!
do seu jeito ficou mais elegante do que usar y.nome==f.nome
ehheh
[]s
[quote=FernandoSChaves][quote=adriano_si]Tenta isso… Lembrando que Strings nao devem ser comparadas com == a menos que queira saber se apontam para o mesmo Objeto…
void contemFuncionario(Funcionario f){
for (Funcionario y : empregados) {
System.out.println((y.nome.equals(f.nome)) ? "Esta pessoa eh funcionária" : "Esta pessoa não é funcionária");
}
Abs ;)[/quote]
Valeu adriano!!
Funcionou direitinho!!
do seu jeito ficou mais elegante do que usar y.nome==f.nome
ehheh
[]s[/quote]
fernando mas serio nao usa f nem y usa nomes melhores neh?
[quote=guialeixo]
fernando mas serio nao usa f nem y usa nomes melhores neh?[/quote]
ehhhe Esse exemplo era apenas para meus estudos
Acabei ficando preguiçoso e não usei as convenções de código. Vou melhorar isso
vlw!
[quote=FernandoSChaves][quote=adriano_si]Tenta isso… Lembrando que Strings nao devem ser comparadas com == a menos que queira saber se apontam para o mesmo Objeto…
void contemFuncionario(Funcionario f){
for (Funcionario y : empregados) {
System.out.println((y.nome.equals(f.nome)) ? "Esta pessoa eh funcionária" : "Esta pessoa não é funcionária");
}
Abs ;)[/quote]
Valeu adriano!!
Funcionou direitinho!!
do seu jeito ficou mais elegante do que usar y.nome==f.nome
ehheh
[]s[/quote]
Cara… a questao nao eh a elegancia e sim a utilidade do metodo equals(), sempre compare valores por ele (principalmente Strings)… Exemplo
String s1 = "ADRIANO";
String s2 = "ADRIANO";
System.out.println(s1==s2); // Por sorte sua, aqui e somente aqui esse valor eh true
Jah aqui…
String s1 = "ADRIANO";
String s2 = new String("ADRIANO");
System.out.println(s1==s2); // FALSE
System.out.println(s1.equals(s2)); // TRUE
Deixo pra voce descobrir o porque disso…
Att.
Sempre use equals() para comparar valores de Strings
Opa Adriano!
Valeu pelas dicas!
No caso de eu usar o == eu estaria comparando as áreas da memória ao invés do conteúdo, correto?
E no .equals, eu estaria comparando o conteúdo ao invés da área de memória alocada…é isso mesmo ou escrevi bobagem?
Abraço!
De modo geral:
Você só é “==” a você mesmo.
Você pode ser “equals” a seu irmão gêmeo.
Desculpem o spam de dúvidas…
Outra coisa pessoal…
em um if ternário eu posso usar um break caso minha condição seja verdadeira ou falsa?
[]s
Um operador condicional ternário é uma expressão (composta de 3 expressões: a condição, a expressão a ser calculada se a condição for verdadeira, e a expressão a ser calculada se a condição for falsa), e um “break” ou “continue” não é uma expressão e sim um comando.