我的代码有效。它给了我正确的结果,但我觉得我犯了一个错误,因为我声明了 x1
, y1
, x2
, y2
太频繁(全局和本地)。我是吗?但是,如果我删除其中一项声明,它就不再起作用。错误信息:
error: cannot find symbol
也许有人可以向我解释,我应该如何在不声明 x1
、y1
、x2
、y2 的情况下解决问题
经常这样。
public class Distanz {
public static void main(String[] args) {
double d = 0;
double x1 = 10;
double y1 = 8;
double x2 = 2;
double y2 = 12;
berechneDistanzAlsProzedur(x1, x2, y1, y2);
System.out.print("Distanz von p1 und p2 berechnet mit einer Funktion: " + berechneDistanzAlsFunktion(d));
}
public static void berechneDistanzAlsProzedur(double x1, double x2, double y1, double y2) {
x1 = 10;
y1 = 8;
x2 = 2;
y2 = 12;
double sqd_d = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
System.out.println("Distanz von p1 und p2 berechnet mit einer Prozedur: " + Math.sqrt(sqd_d));
}
public static double berechneDistanzAlsFunktion(double d) {
double x1 = 10;
double y1 = 8;
double x2 = 2;
double y2 = 12;
double sqd_d = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
return (Math.sqrt(sqd_d));
}
}
最佳答案
您可以简单地使用参数x1
、y1
、x2
和y2
来代替。否则,无论调用时使用什么参数,您的方法都将始终返回相同的值。
public static void berechneDistanzAlsProzedur(double x1, double x2, double y1, double y2) {
double sqd_d = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
System.out.println("Distanz von p1 und p2 berechnet mit einer Prozedur: "+Math.sqrt(sqd_d));
}
public static double berechneDistanzAlsFunktion(double x1, double x2, double y1, double y2) {
double sqd_d = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
return (Math.sqrt(sqd_d));
}
关于java - 我在声明变量时犯了错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65158936/