#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. Я улучшил свой ответ, чтобы добавить объяснение. Пожалуйста, посмотрите, можно ли снова проголосовать за это.