Dúvida sobre métodos

5 respostas
S

Estou estudando métodos, só que ainda não me familiarizei muito.O que está de errado no código abaixo?

Main.java

import java.util.Scanner;

public class Main {
    //recebe os valores e exibe os resultados
    public void determineNumber()
    {
        //cria scanner
        Scanner input = new Scanner(System.in);
        
        //prompt
        System.out.print("Insira um valor de ponto flutuante que será arredondado: ");
        double x = input.nextDouble(); 
        
        System.out.printf("O número original é: %f\n", x);
        System.out.printf("O valor arredondado é: %f", testFloor(y));
    }
    
    //efetua o cálculo  
    public double testFloor(double x)
    {
        double y = Math.floor(x + 0.5);
        return y;    
    }
}

MainTest.java

public class MainTest {
    public static void main(String[] args)
    {
        Main newMain = new Main();
        newMain.determineNumber();
    }

}

O erro está nessa linha:
System.out.printf(“O valor arredondado é: %f”, testFloor(y));
Não estou conseguindo trazer as informações que estão no outro método.

5 Respostas

T
double x = input.nextDouble();   
           
         System.out.printf("O número original é: %f\n", x);  
         System.out.printf("O valor arredondado é: %f", testFloor(y));

Qual é o valor de y? Você não o declarou em lugar nenhum.

Kassiane_Pretti

isso não resolve não:

System.out.printf("O valor arredondado é: %fl", testFloor(x));

Ou:

System.out.println("O valor arredondado é: "+ testFloor(x));
S

Deu certo, só uma outra dúvida…

porque eu uso return y

e para mostrar o valor eu uso o x?
System.out.println(“O valor arredondado é:”+ testFloor(x));

eu pensei que o return servia para retornar esse valor para os outros métodos :stuck_out_tongue_winking_eye:

o valor de y era para declarado aqui:

double y = Math.floor(x + 0.5);

ou isso não está certo?

Kassiane_Pretti

Quando vc chama o metodo vc passa a variavel x como parametro do metodo. Lá no metodo na lista de parametros teremos uma varivel para receber o valor de x (uma copia). Isso não quer dizer que vc esta mexendo com a variavel x no metodo e sim uma copia dela.
Quando vc realiza o return y, está retornando o valor da variavel y do metodo.

Espero ter sido clara na idéia. :wink:

S

sim, ajudou a esclarecer um poucos mas estou tendo dificuldades para compreender esse métodos.
vou continuar estudando para que eu consiga entender bem.

Criado 22 de fevereiro de 2008
Ultima resposta 22 de fev. de 2008
Respostas 5
Participantes 3