Не удается выяснить эту ошибку в Eclipse Java

#java #eclipse

#java #eclipse

Вопрос:

Моя программа продолжает сталкиваться с кирпичной стеной, когда я пытаюсь запустить код. Я получаю сообщение об ошибке «Исключение в потоке «main» java.lang.Ошибка: неразрешенная проблема компиляции: DfinalResult не может быть преобразован в переменную «. Я пытался прочитать другие решения, но пока безуспешно. Любая информация о том, что я делаю неправильно, чтобы запустить этот код. Также следует отметить, что проблема возникает, когда я пытаюсь вызвать результат из одного из моих методов в println. -Liam P.s. Если цифры не работают прямо сейчас, все в порядке, я не смог его протестировать, так как я не могу его запустить, лол.

 import java.util.Scanner;

public class mathMecklenburg {
    
    //note: i have a very good idea don't forget it 

    

    public static void main(String[] args) {

        System.out.println("Enter an integer between 1 and 10 to be used as the first value: ");
        Scanner scanint = new Scanner(System.in);
        int x = scanint.nextInt();
        System.out.println("Enter an integer between 1 and 10 to be used as the second value: ");
        int y = scanint.nextInt();
        System.out.println("Enter an integer between 1 and 10 to be used as the third value: ");
        int z = scanint.nextInt();    //x,y,z will be input values from person
        scanint.close();

        double A1 = operationOne(x);  //A1 is just operation 1 only using x. made double maybe for later difficulty
        System.out.println("The answer to part one of the problems is: "   A1);
        double A2 = operationTwo(x,y); // A2 is operation 2 using x and y
        System.out.println("The answer to part two of the problems is: "   A2);
        double A3 = operationThree(x,y,z); //A3 is operation 3 is using x,y,z. make something difficult here
        System.out.println("The answer to part three of the problems is: "   A3); //these print text then A3 
        int IfinalResult = (int) DfinalResu< 
        System.out.println("The double trouble answer is "   IfinalResult);
        
        
        //summary of the mentioned declared stuff in this part:
        //x,y,z are all input numbers from the person
        //A1, A2, A3 are the holders for each operations output i
        //currently all of them are same data types maybe make more confusing later 

         //final answer should be fun also make a method for final answer later to clean up code
        
        
        // finalAnswer = (Create an equation that utilizes all of the arithmetic operators and all three answers)
          //for me to check that numbers work out
        //System.out.println("The final answer is:"   IfinalResult); //put the result from the final method here for print);        

    }

    //side note: make sure all the first 3 operations give whole numbers no decimals yet 
    public static int operationOne(int x) {

        int answerOne;
        answerOne = x 2;
        // answerOne = (Create an equation that utilizes all of the arithmetic operators with the one input parameter)
        return answerOne;
    }

    public static int operationTwo(int x, int y) {
        int answerTwo;
        answerTwo = x   y;
        // answerOne = (Create an equation that utilizes all of the arithmetic operators with both input parameters)
        return answerTwo;
    }


    public static int operationThree(int x, int y, int z) {
        int answerThree;
        answerThree =  x   y   z;
        // answerThree = (Create an equation that utilizes all of the arithmetic operators using all three input parameters)
        return answerThree;
    }
    
    public static double doubleTrouble(int x, int y, int z, int A1, int A2, int A3, int IfinalResult) { //i thought the method name was funny 
    
    
    double Fx = Math.log(A1 - (A2   A3)); //oops :) final answer x (Fx) 
    return (int) Fx;
    double Fy = Math.exp(7);  //final answer y (Fy)
    return Fy;
    double Fz = Math.asin(Fy)/(200);  //final answer z (Fz)
    return Fz;
    double Fz1 = Math.exp(Fx Fy Fz);
    double F1 = (Fx Fy Fz)*(java.lang.Math.PI) A1; 
    double F2 = F1/(x) (y)/(x) 5*(x y);
    double F3 = F1 F2-A1;
    double DfinalResult = F1 F2 2*(F3*Fz1);
    }
    
}
    
  

Комментарии:

1. метод doubletrouble написан неправильно. вы не можете возвращать промежуточное значение.

2. Код не компилируется. DfinalResult не объявлено как статическая переменная, и поэтому запрещено ссылаться на нее в main методе. doubleTrouble В методе слишком много ошибок о недоступном коде после return операторов.

Ответ №1:

Переменная DfinalResult не может быть видна за пределами метода doubleTrouble, и вы используете в основном методе.

Ответ №2:

в вашей программе 4 ошибки

1: переменная не вызывается. DfinalResult

2: Я не знаю, знаете ли вы, но когда вы используете команду return, она не продолжает код

 public static double doubleTrouble(int x, int y, int z, int A1, int A2, int A3, int IfinalResult) {


double Fx = Math.log(A1 - (A2   A3)); //oops :) final answer x (Fx) 
return (int) Fx; "Here you return so the next line wouldn't be executed"
double Fy = Math.exp(7);  //final answer y (Fy)
return Fy;
double Fz = Math.asin(Fy)/(200);  //final answer z (Fz)
return Fz;
double Fz1 = Math.exp(Fx Fy Fz);
double F1 = (Fx Fy Fz)*(java.lang.Math.PI) A1; 
double F2 = F1/(x) (y)/(x) 5*(x y);
double F3 = F1 F2-A1;
double DfinalResult = F1 F2 2*(F3*Fz1);
}
  

Комментарии:

1. Спасибо! В прошлом я много работал с arduino, но это мой первый месяц использования Java. Я не знал / мог забыть об этом правиле возврата. Спасибо, что прояснили это.

Ответ №3:

doubleTrouble() метод содержит много ошибок.

  • Вы не можете писать return операторы между ними.
  • Вы не объявили DfinalResult переменную в методе main.

Вот почему код не компилировался.

Я исправил ошибку. Обновите это :

 public class Sample {

    public static void main(String[] args) {

        System.out.println("Enter an integer between 1 and 10 to be used as the first value: ");
        Scanner scanint = new Scanner(System.in);
        int x = scanint.nextInt();
        System.out.println("Enter an integer between 1 and 10 to be used as the second value: ");
        int y = scanint.nextInt();
        System.out.println("Enter an integer between 1 and 10 to be used as the third value: ");
        int z = scanint.nextInt(); // x,y,z will be input values from person
        scanint.close();

        double A1 = operationOne(x); // A1 is just operation 1 only using x. made double maybe for later difficulty
        System.out.println("The answer to part one of the problems is: "   A1);
        double A2 = operationTwo(x, y); // A2 is operation 2 using x and y
        System.out.println("The answer to part two of the problems is: "   A2);
        double A3 = operationThree(x, y, z); // A3 is operation 3 is using x,y,z. make something difficult here
        System.out.println("The answer to part three of the problems is: "   A3); // these print text then A3
        int IfinalResult = (int) doubleTrouble(x, y, z, A1, A2, A3);
        System.out.println("The double trouble answer is "   IfinalResult);
    }

    // side note: make sure all the first 3 operations give whole numbers no
    // decimals yet
    public static int operationOne(int x) {

        int answerOne;
        answerOne = x   2;
        // answerOne = (Create an equation that utilizes all of the arithmetic operators
        // with the one input parameter)
        return answerOne;
    }

    public static int operationTwo(int x, int y) {
        int answerTwo;
        answerTwo = x   y;
        // answerOne = (Create an equation that utilizes all of the arithmetic operators
        // with both input parameters)
        return answerTwo;
    }

    public static int operationThree(int x, int y, int z) {
        int answerThree;
        answerThree = x   y   z;
        // answerThree = (Create an equation that utilizes all of the arithmetic
        // operators using all three input parameters)
        return answerThree;
    }

    public static double doubleTrouble(int x, int y, int z, double a1, double a2, double a3) {
        double Fx = Math.log(a1 - (a2   a3)); // oops :) final answer x (Fx)
        double Fy = Math.exp(7); // final answer y (Fy)
        double Fz = Math.asin(Fy) / (200); // final answer z (Fz)
        double Fz1 = Math.exp(Fx   Fy   Fz);
        double F1 = (Fx   Fy   Fz) * (java.lang.Math.PI)   a1;
        double F2 = F1 / (x)   (y) / (x)   5 * (x   y);
        double F3 = F1   F2 - a1;
        double DfinalResult = F1   F2   2 * (F3 * Fz1);
        return DfinalResu<
    }

}
  

Комментарии:

1. Это работает отлично! Я прочитал некоторые другие комментарии и теперь понимаю свою ошибку. Спасибо, что уделили время своему дню, чтобы решить эту проблему!

2. @Liam Нет проблем.

3. Я улучшил свой ответ, чтобы добавить объяснение. Пожалуйста, посмотрите, можно ли снова проголосовать за это.