Aprendendo modo ternario

7 respostas
D

Boa tarde estou treinando um modo ternario e recursivo
só que está dando um erro dizendo que é uma expressão ilegal alguem poderia me ajudar?

Obrigado

public class Exercicio03 {
    
    private static long numeroFatorial;
    
    static long numeroFatorial(int parametro){
      
        (parametro < 2) ? numeroFatorial 1 : numeroFatorial *= parametro;
        
     return numeroFatorial;
}

7 Respostas

Janerson
decco05:
Boa tarde estou treinando um modo ternario e recursivo só que está dando um erro dizendo que é uma expressão ilegal alguem poderia me ajudar?

Obrigado

public class Exercicio03 {
    
    private static long numeroFatorial;
    
    static long numeroFatorial(int parametro){
      
        (parametro < 2) ? numeroFatorial 1 : numeroFatorial *= parametro;
        
     return numeroFatorial;
}

Resolva assim

public static long fatorial(int n) {      
  
    return n <=1 ? n :fatorial(n - 1)*n;  
}
victormagno

Pra utilizar um operador ternário, você deve atribuir seu retorno à uma variável. Não é uma redução de sintaxe do IF.

var = (validacao) ? retorno_para_verdadeiro : retorno_para_falso;
D

Obrigado Janerson e victormagno agradeço pela ajuda

Para caso alguém queira o código está logo abaixo

package Pacote;
import javax.swing.JOptionPane;
/**
 * aula : 01 
 * Data : 13/02/2014
 * @author douglas.decco
 */
public class Exercicio03 {

    private static long numeroFatorial;

    static long numeroFatorial(int parametro) {

        return numeroFatorial = (parametro < 2) ? 1 : numeroFatorial * parametro;

    }

    public static void main(String[] args) {
        JOptionPane.showMessageDialog(null, (String.valueOf(
                Exercicio01.numeroFatorial(Integer.parseInt(
                JOptionPane.showInputDialog("digite um numero"))))));
    }
}
B

Um aviso, esse código não funciona para calcular fatoriais. Não tem recursão nem iteração nele.

D

Bruno Laturner:
decco05:

Para caso alguém queira o código está logo abaixo

Um aviso, esse código não funciona para calcular fatoriais. Não tem recursão nem iteração nele.

Bom dia bruno … vlws por opinar, mas sinceramente fiquei boiando sobre o que vc me disse, poderia me dizer o que está errado para eu poder arrumar?

Muito obrigado!

B

Aqui explica o que é fatorial, e o código sem e com recursividade: http://includec.blogspot.com.br/2009/04/fatorial-recursivo-em-c.html

Wikipedia tb consegue explicar melhor do que eu o que é recursividade.

No teu exemplo você tem uma variável global e um método com os mesmos nomes. Isso não é recursão.

D

Opa muito obrigado.

Criado 13 de fevereiro de 2014
Ultima resposta 13 de fev. de 2014
Respostas 7
Participantes 4