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