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

6 respostas
S

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.

6 Respostas

J

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.

S
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

F
<blockquote><div class="quote-author">“sudeval”:</div>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

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

é isso??

S

é, valeu ae

eltonk
<blockquote><div class="quote-author">“sudeval”:</div>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

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

F

eh algo mais ou menos assim:

CONDICAO ? TRUE : FALSE

Criado 23 de janeiro de 2004
Ultima resposta 26 de jan. de 2004
Respostas 6
Participantes 5