Precedência de operadores em Java

Ola sou iniciante na linguagem java gostaria de saber Procedência de operadores em Java esse comando

?: (Condicional: if-then-else compacto)

minha duvida como q ele funciona ?

i == 8 ? 'h' : 'd'

SE i é igual a 8 então h SENAO d

Tem um nome para esse tipo de expressão, me fugiu agora, se lembrar eu posto aqui.

Precedência != procedência
(procedência = origem. Por exemplo: “este escargot é de procedência desconhecida”.
precedência = prioridade. Por exemplo: “o operador de multiplicação tem precedência sobre o operador de adição”.)

De qualquer maneira, o “?” é mais ou menos como se fosse o “iif” do VB ou o “if” do Excel. Se você usou algum deles, vai entender rapidamente o que estou falando. Ele funciona assim:

x = a ? b : c;

é mais ou menos a mesma coisa que isto aqui (que não existe diretamente em Java) :

x = if (a) b; else c;

Em Scala, uma linguagem irmã do Java, não existe o operador “?”, que considero uma aberração herdada do C/C++ e que serve, na verdade, para provar para seus colegas que você ou é um guru ou um tonto (dependendo do uso que você faça dele).
Em vez disso, usa-se if mesmo, que é mais simples de entender.

// Sorry, apenas em Scala
x = if (a) b else c

Fala Brow,

Acho que isso ae eh o operador ternario…
Funciona assim:

? : ;

Um exemplo:


 String resultado = (x = 1) ? "xis igual a um" : "xis diferente de um";
 // Onde:
 // (x = 1 ) eh uma expressao booleana, ou seja, retorna falso ou verdadeiro.
 // Se o x tiver o valor 1, entao essa condicao sera verdadeira, e consequentemente a 
 // variavel resultado vai receber "xis igual a um";
 // Se xis nao for 1, resultado vai receber "xis diferente de um"...

Deu pra sacar mais ou menos ae??

Abraco!

CERTO E QUE ENCONTREI ESSE COMANDO NESSE CODIGO AQUI QUE ESTA EM NEGRITO QUERIA SABER COMO Q FUNCIONA ?

  1. int resultado = 0;
  2. for (int fat = 1, fatorial = 1; fat <= 10; fat++) {
  3. resultado = fatorial <= 1 [b]?[/b] 1 : fatorial * resultado;  
    
  4. System.out.println("O Fatorial de " + fatorial + " = " + resultado);  
    
  5. fatorial++;  
    
  6. }

SE PUDEREM RESPONDER CADA LINHA EO AGRACEÇO.

SE PODEREM EXPLICAR CADA LINHA DO CODIGO ACIMA EO AGRADEÇO .

Falaaa Brow…

Seguinte, fica a dica, use as tags code e /code qdo voce puser fonte na sua msg…
facilitam pra galera ver
=]

Mas vamos la…

int resultado = 0;
for (int fat = 1, fatorial = 1; fat <= 10; fat++) {
// Na linha abaixo, o compilador analisa se (fatorial <= 1). 
// Se sim, retorna o 1 (que esta apos o ?).
// Se nao, retorna (fatorial * resultado), que esta apos o :;
resultado = fatorial <= 1 ? 1 : fatorial * resultado;
System.out.println("O Fatorial de " + fatorial + " = " + resultado);
fatorial++;
} 

Brother se poder explica todas as linha do codigo ficarei muito grato.

Dica: faça um pequeno programa que contenha essas linhas e debugue-o em uma IDE como o NetBeans ou o Eclipse. Acompanhe os valores das variáveis à medida que você vai rodando o programa passo-a-passo. Então você vai entender o programa. OK?

Brother fiz como voce falo eo entendi akele outro codigo fiz um teste de mesa a lapis eo fui analisando cada linha.
agora tentei implementar de outro jeito se esse operador de precedencia .
acho que funciono.Obrigado a todos.

public class fatorial {
public static void main(String args[]) {

int resultado=0,fatorial= 1,fat;

for(fat=1;fat<=10;fat++) {
 if(fatorial <= 1)
  resultado = fat;
else
   resultado=fatorial*resultado;
   System.out.println("O fatorial de" +fatorial+"="+resultado);
   fatorial++;

}

}

}