Olá estou com uma duvida …
Gostaria de saber o que significa esse ponto de interrogação no java .
[code]
valorAtual = itrAlunos.hasNext() ? itrAlunos.next() : null;[/code]
Obrigada.
Olá estou com uma duvida …
Gostaria de saber o que significa esse ponto de interrogação no java .
[code]
valorAtual = itrAlunos.hasNext() ? itrAlunos.next() : null;[/code]
Obrigada.
esse é o operador ternario, é como se fosse um IF else
o ? representa o if e o : o else
serve google tbm…não precisaria postar uma coisa dessa aqui !
obrigada [ Exeto par ao AnDrOiDe ] por terem esclarecido a minha duvida …
Fico muito Grata .
AnDrOiDe: Pelo que percebi ele postou no “Java Básico”. Se não quer ajudar, não ajude, mas pelo menos não tumultue os tópicos.
Geralmente o pessoal prefere usar if e else mesmo, mais usar ? e : também é uma alternativa.
só falei pro cara buscar no GOOGLE como todo mundo fala , tbm lek niguem esta causando aki naum hein!!!
só falei pro cara buscar no GOOGLE como todo mundo fala , tbm lek niguem esta causando aki naum hein!!![/quote]
Se ele está na area de “Java Basico”, e o assunto for referido a este, provavelmente o usuario precisa de ajuda…
Por esse motivo está aqui…
A ? é um operador, não um comando. O if é um comando.
A diferença é que operadores retornam valor e, portanto, podem ser usados onde ifs não podem.
Por exemplo, se você tiver uma função:
public void fazQualquerCoisa(int valor)
Vai precisar duplicar a chamada num if:
if (x == 0) {
fazQualquerCoisa(10);
} else {
fazQualquerCoisa(20);
}
Mas não precisará com o ternário:
fazQualquerCoisa(x == 0 ? 10 : 20);
[quote=ViniGodoy]A ? é um operador, não um comando. O if é um comando.
A diferença é que operadores retornam valor e, portanto, podem ser usados onde ifs não podem.
Por exemplo, se você tiver uma função:
public void fazQualquerCoisa(int valor)
Vai precisar duplicar a chamada num if:
if (x == 0) {
fazQualquerCoisa(10);
} else {
fazQualquerCoisa(20);
}
Mas não precisará com o ternário:
fazQualquerCoisa(x == 0 ? 10 : 20);
[/quote]
Nossa, tentei ajudar ela e acabei me atrapalhando…
Mas em fazQualquerCoisa(x == 0 ? 10 : 20);
ele não acaba tendo a mesma função que o if/else?
só falei pro cara buscar no GOOGLE como todo mundo fala , tbm lek niguem esta causando aki naum hein!!![/quote]
Se ele está na area de “Java Basico”, e o assunto for referido a este, provavelmente o usuario precisa de ajuda…
Por esse motivo está aqui…[/quote]
então pq o cara esta falando que ele esta tumultuando naum vi nd d++ só falou pra o cara buscar no google…ou pq o cara é corinthiano e vem tirar o cara!!!palhaçada…to defendendo niguem !
só falei pro cara buscar no GOOGLE como todo mundo fala , tbm lek niguem esta causando aki naum hein!!![/quote]
Se ele está na area de “Java Basico”, e o assunto for referido a este, provavelmente o usuario precisa de ajuda…
Por esse motivo está aqui…[/quote]
então pq o cara esta falando que ele esta tumultuando naum vi nd d++ só falou pra o cara buscar no google…ou pq o cara é corinthiano e vem tirar o cara!!!palhaçada…to defendendo niguem ![/quote]
É, mais ele falou, “não precisaria postar essas coisas aqui”, se a pessoa derrepente quer uma explicação melhor, pois não compreendeu muito bem, ela pode vim consultar nossos colegas do GUJ.
só falei pro cara buscar no GOOGLE como todo mundo fala , tbm lek niguem esta causando aki naum hein!!![/quote]
Se ele está na area de “Java Basico”, e o assunto for referido a este, provavelmente o usuario precisa de ajuda…
Por esse motivo está aqui…[/quote]
então pq o cara esta falando que ele esta tumultuando naum vi nd d++ só falou pra o cara buscar no google…ou pq o cara é corinthiano e vem tirar o cara!!!palhaçada…to defendendo niguem ![/quote]
É, mais ele falou, “não precisaria postar essas coisas aqui”, se a pessoa derrepente quer uma explicação melhor, pois não compreendeu muito bem, ela pode vim consultar nossos colegas do GUJ.[/quote]
entendi sim…mas naum precisava falar que o cara estava tumultuando e pronto…hahaha manu ponto final acabo essa discussão!!!
[quote=AnDrOiDe]serve google tbm…não precisaria postar uma coisa dessa aqui !
[/quote]
Respeito é uma coisas que os “manos” não tem :lol:
cada um fala o que quer manu , todo mundo tem sua boca e seu jeito de ser se o cara foi assim o problema é dele e pronto!
agora vão vir mo par de genet falando merda agora tenhu certeza!!!
Sim, sim. Tem a mesma função, mas com apenas 1 única chamada a fazQualquerCoisa, já que ele pode ser usado como um valor, diretamente. E isso evita que um programador desatento corrija só o que está dentro do if, esquecendo de corrigir o que está dentro do else, caso tenha que, por exemplo, mudar o nome da função.
Ele também é um pouco mais limitado, por ser um operador. As duas expressões devem, necessariamente, retornar o mesmo tipo de dado (ou dados compativeis). Isso aqui, não é possível reescrever com ternário:
if (x.getClass() == String.class)
escrever(x.toString());
else
escrever((Integer)x);
Simplesmente pq isso faria um ternário que metade da expressão retornaria String e metade Integer. Também não é possível chamar funções void, já que o ternario deve retornar valor.
Ah sim, por ser um operador, você também pode usar o ternário dentro de expressões matemáticas. Isso é útil para representar, por exemplo, funções descontínuas ou como esta:
public void someFunction(float y)
return (y < 0 ? -(y*y) : y*y) + 1000;
}
Mas é claro, seria possível substituir esse código por ifs. Só ficaria mais complicado, e novamente com código duplicado.
Sim, sim. Tem a mesma função, mas com apenas 1 única chamada a fazQualquerCoisa, já que ele pode ser usado como um valor, diretamente. E isso evita que um programador desatento corrija só o que está dentro do if, esquecendo de corrigir o que está dentro do else, caso tenha que, por exemplo, mudar o nome da função.
Ele também é um pouco mais limitado, por ser um operador. As duas expressões devem, necessariamente, retornar o mesmo tipo de dado (ou dados compativeis). Isso aqui, não é possível reescrever com ternário:
if (x.getClass() == String.class)
escrever(x.toString());
else
escrever((Integer)x);
Simplesmente pq isso faria um ternário que metade da expressão retornaria String e metade Integer. Também não é possível chamar funções void, já que o ternario deve retornar valor.
[/quote]
Mais a maior vantagem dele seria na hora da correção de algum erro, seria visivel a necessidade de mudar tanto o ? quanto o :, correto?
E tambem se pode usar um por exemplo fazQualquerCoisa(x == 0 ? 10 : 20 : 30);
no caso de o uso de dois else?
OBRIGADA pelas explicações …
A propoito gostaria de esclarecer algumas coisas …
A primeira ale[vou mudar] é de alessandra , ou seja não é ele é ela hahahahahah …
Eu consultei o google primeiro , só que é dificil procurar bo google um ponto de interrogação . hahhaha …
E a explicações de vc´s foram 10000000 …
não fiquei com nenhuma duvida por isso agradeço mais uma vez…