Quem poderia me explicar o que faz essa linha

max = (num1>num2)?num1:num2;
max = (max>num3)?max:num3;

eu não sei o que faz aquele sinal de interrogação depois das chaves :oops:
se alguem puder me explicar o que exatamente faz a parte do código depois dos parenteses eu ficaria agradecido
muito obrigado
antonio lopes

ta muito estranho essas 2 linhas…
o codigo está correto!?

vc copiou certo elas!?
nunca vi isso. rsrs… :shock:

max = cond ? a : b

if (cond) max = a;
else max = b;

Muito útil para escrever rapidamente um IF/THEN/ELSE numa linha só… Isso é das antigas…

sim copiei certo e o programa roda perfeito
é umprograma basico em que nessas linhas é determinado o numero maior

saoj obrigado pela resposta
mas poderia ser um pouco mais claro?
sou novato

se a cond (x > 1) for true max vai ser igual a A, caso contrário irá ser igual a B

max = x > 1 ? A : B;

C, Java e uma porção de linguagens tem esse operador, chamado operador ternário.

Nesse caso, ele salva, em max, o maior valor dessas 3 variaveis.

Olá.
Isso é um operador ternário.

:wink: Falow…

Dica:

Você pode usar que vai fazer a mesma coisa me uma única linha:

max = Math.max(Math.max(num1, num2), num3);

Carra isso é um operador ternário, ele trabalha na seguinte forma: Ele testa a condição q está antes do sinal de interrogação, se for satisfatório (true), ele armazena na variável o q está depois de ? e antes de :, caso contrário ele armazena o q está depois d :.

Um exemplo prático:

int teste = 1;
String var;
var = teste > 0 ? "Maior" : "Menor"; //var = "Maior"

[color=red]O operador ternário só funciona se o resultado for atribuído à alguma variável, ele não serve para passagem de parâmetros.[/color]

[color=red]Isso NÃO fuciona[/color]

int teste;
System.out.println(teste > 0 ? "Maior" : "Menor");

[color=blue]Isso FUNCIONA[/color]

int teste;
var = teste > 0 ? "Maior" : "Menor";
System.out.println(var);

Isso:

 max = (num1>num2)?num1:num2;

Equivale a isso:

if (num1 > num2){
 max = num1;
}else{
 max = num2;
}

max = (num1>num2)?num1:num2; max = (max>num3)?max:num3;

Equivale a:

[code]
if(num1>num2) { max = num1;}
else {max = num2;}

if(max>num3) {max = max; }
else {max = num3;}[/code]