Programa em Java que contenha uma função que receba como parametros dois valores inteiros

Escreva um programa em Java que contenha uma função que receba como parâmetros dois valores inteiros. A função deve retornar a soma dos inteiros no intervalo entre os dois valores (incluindo os limites) (enviar um arquivo de texto contendo o link para o OnlineGDB ou o próprio programa). NÃO ENVIAR PDF OU DOCX.

import java.util.Scanner;
public class Main
{

class Calcula
{
int soma;
public int calcular (int valor1, int valor2);
{
return soma = valor1 + valor2;
}
}

public static void main (String[] args ){
Scanner end= new Scanner(System.in);

{
int valor1;
int valor2;
int soma;

System.out.println(“Digite o valor do primeiro numero:”);
valor1= end.nextInt();
System.out.println(“Digite o valor do primeiro numero:”);
valor1= end.nextInt();

}
soma = valor1 + valor2;

System.out.println(+soma);

}
}

ERRO QUE APARECER.
Main.java:16: error: missing method body, or declare abstract
public int calcular (int valor1, int valor2);

Alguem pode me ajudar

Você colocou um ponto e vírgula na linha:

public int calcular (int valor1, int valor2);

Remova este ponto e vírgula e este erro deve estar resolvido.

Abraço.

Apareceu este erro, quando fiz a retirada do ponto e virgula.

error: incompatible types: unexpected return value
return soma = valor1 + valor2;

Isso porque você está tentando retornar uma operação (a soma e a atribuição) e vez de retornar o valor int que está definido na assinatura do método.

Você pode fazer a operação antes do return:

public int calcular (int valor1, int valor2)
{
  soma = valor1 + valor2;
  return soma;
}

Ou mesmo retornar o resultado direto:


public int calcular (int valor1, int valor2)
{
  return (valor1 + valor2);
}

Obs: esse método calcular e essa classe Calcula não estão sendo usados no seu main. Por que os criou?

Abraço.

int funcao(int valor1, int valor2) {
    int soma = 0;
    for (int numero = valor1; numero <= valor2; numero++ ) {
        soma += numero;
    }
    return soma;
}

É pra somar todos os números entre os valores. Por exemplo, se os números forem 5 e 8, a soma deve ser 5 + 6 + 7 + 8, e não 5 + 8, como você estava fazendo.

Como é um exercício, provavelmente “querem” que você use um loop, como foi feito acima.

Mas na verdade dá pra simplificar, pois no fundo isso é a soma de uma progressão aritmética:

int soma(int inicio, int fim) {
    int n = fim - inicio + 1;
    return (inicio + fim) * n / 2;
}

Ah sim, o código acima não verifica se o valor inicial é menor que o final, então só para deixar mais completo (e equivalente ao loop em todos os casos):

int soma(int inicio, int fim) {
    if (inicio >= fim)
        return 0;
    int n = fim - inicio + 1;
    return (inicio + fim) * n / 2;
}
2 curtidas