Ajuda no return

4 respostas Resolvido
I
Estou tentando criar esse programa mas ele não está indo, quando tiro o último return ele da erro e sem esse último módulo não consigo retornar!

import javax.swing.*;

public class funcao {

public static void main (String args []){

int n1, n2, soma = 0;

n1 = Integer.parseInt(JOptionPane.showInputDialog("Digite um número: "));

n2 = Integer.parseInt(JOptionPane.showInputDialog("Digite outro número: "));

JOptionPane.showMessageDialog(null, "A soma dos números ímpares entre os números digitados é " + soma(soma));

}
static int soma(int n1, int n2, int soma){

int i;
{

if (n1 > n2) {

for (i = n1; i >= n2; i–){

if (i%2!=0)

soma = soma + i;

}

return soma;

}

else{
for (i = n1; i <= n2; i++){
		if (i%2!=0)
			soma = soma + i;
      }
     return soma;

}

}

}
private static int soma (int soma){
  return

4 Respostas

pmlm

Indentação é chave para perceber o teu problema. Se não formatas devidametne o teu código vais ter muitas dores de cabeça com { e } …

import javax.swing.*;

public class funcao {
    public static void main (String args []){
        int n1, n2, soma = 0;
        n1 = Integer.parseInt(JOptionPane.showInputDialog("Digite um número: "));
        n2 = Integer.parseInt(JOptionPane.showInputDialog("Digite outro número: "));
        JOptionPane.showMessageDialog(null, "A soma dos números ímpares entre os números digitados é " + soma(soma));

    }
    static int soma(int n1, int n2, int soma){

        int i;
        {  // esta chaveta é desnecessária, podes apagar
            if (n1 > n2) {
                for (i = n1; i >= n2; i--){
                    if (i%2!=0)
                        soma = soma + i;
                }
                return soma;
            }
            else{

                for (i = n1; i <= n2; i++){
                    if (i%2!=0)
                        soma = soma + i;
                } 
               return soma;                
            }

        } // esta chaveta é desnecessária, podes apagar 

    }    

    private static int soma (int soma){
        return // aqui tens de retornar algo e terminar com ;
    // falta uma chaveta para terminar o método
// falta uma chaveta para terminar a classe
I

Entendi, mas quando eu retorno o último, não consigo ver a mensagem aparecendo, que seria o resultado do cálculo, não sei como fazer quando tem essa comparação, porque se coloco o return só no final ele pede ali no meio, se eu deixo só no meio ele pede no final

pmlm
Solucao aceita

Agora que vejo o código com mais atenção, tu estás a chamar o método errado.

Aqui

JOptionPane.showMessageDialog(null, "A soma dos números ímpares entre os números digitados é " + soma(soma));

Deve ser

JOptionPane.showMessageDialog(null, "A soma dos números ímpares entre os números digitados é " + soma(n1, n2, soma));

Na verdade, soma nem deveria ser passado para dentro do método, uma vez que seria inicializado lá. Mas isso já é outra questão.

Para o teu código funcionar tens de apagar o método soma que recebe um int e tem esse return estranho e deixar só o outro soma com três parâmetros. E alterar a linha que eu disse acima

I

Consegui, muito obrigada mesmo!

Criado 18 de março de 2021
Ultima resposta 18 de mar. de 2021
Respostas 4
Participantes 2