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

5 respostas
javaprogramação
I

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

5 Respostas

T

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.

I

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

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

T

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.

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

É 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;
}
Criado 6 de dezembro de 2021
Ultima resposta 6 de dez. de 2021
Respostas 5
Participantes 4