O que significa o "?" e o ":" em Java, e

tenho um exemplo aqui no livro em que esto estudadno q cito esse exmplo mas nao lembro de ele ter falado disso antes por isso postei aqui para lhes pedir ajuda…(livro é deitel 4ª ed. Cap. 8 fig.8.1)

(isso aqui é so uma parte viu)

public void setTime(int h, int m, int s)
{
hour = ( (h >= 0 && h < 24) ? h : 0);
minute = ( (m >= 0 && m < 60) ? m : 0);
second = ( (s >= 0 && s < 60) ? s : 0);
}
public String toString()
{
DecimalFormat two = new DecimalFormat( “00” );
return ( (hour == 12 || hour == 0) ? 12 : hour % 12) +
“:” + two.format(minute) + “:” + two.format(second) +
(hour < 12 ? " AM" : " PM");

ae os &&(e logico, eu sei)
agora o “?” e esse “:” significa o q ai?

Obrigado.

Tudo bom!

No exemplo o autor usa um operador ternário. Tipo um if…else.

Exemplo:

if &#40;h &gt;= 0 && h &lt; 24&#41; &#123;
hour=h;
&#125;
else&#123;
hour=0;
&#125;

Pode-se substitiur pelo seguinte:

hour = &#40; &#40;h &gt;= 0 && h &lt; 24&#41; ? h &#58; 0&#41;; 

Abraços.

Ei valeu agora me da so um tok nessa debaixo aqui vai-la
public String toString()
{
DecimalFormat two = new DecimalFormat( “00” );

return ( (hour == 12 || hour == 0) ? 12 : hour % 12) +
“:” + two.format(minute) + “:” + two.format(second) +

(hour < 12 ? " AM" : " PM");

nessa parte do AM e PM, dessa comparação ae

[quote=“sudeval”]Ei valeu agora me da so um tok nessa debaixo aqui vai-la
public String toString()
{
DecimalFormat two = new DecimalFormat( “00” );

return ( (hour == 12 || hour == 0) ? 12 : hour % 12) +
“:” + two.format(minute) + “:” + two.format(second) +

(hour < 12 ? " AM" : " PM");

nessa parte do AM e PM, dessa comparação ae[/quote]

if &#40;hour&lt;12&#41;&#123;
System.out.println&#40;&quot;AM&quot;&#41;;
&#125;
else&#123;
System.out.println&#40;&quot;PM&quot;&#41;;
&#125;

é isso??

é, valeu ae

[quote=“sudeval”]Ei valeu agora me da so um tok nessa debaixo aqui vai-la
public String toString()
{
DecimalFormat two = new DecimalFormat( “00” );

return ( (hour == 12 || hour == 0) ? 12 : hour % 12) +
“:” + two.format(minute) + “:” + two.format(second) +

(hour < 12 ? " AM" : " PM");

nessa parte do AM e PM, dessa comparação ae[/quote]

Pense que o “?” é a condição if (se) e o “:” é a divisão dos possíveis resultados (true, false). Se a condição for verdadeira, ele pega o primeiro paramentro (antes dos “:”) Se for falsa, o segundo (depois dos “:”)
:wink:

Abraços

eh algo mais ou menos assim:

CONDICAO ? TRUE : FALSE