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;
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
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
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