以类似于'的方式'数学,确实使用括号改变方法的顺序。
例如,
System.out.println(Math.abs(Math.min(-6,3)));
给出输出6.这是因为math.min在计算绝对值之前完成了它的工作吗?
我想确保情况确实如此,并不是数学课的怪癖。
谢谢
答案 0 :(得分:4)
这不是括号排序的结果。虽然在使用运算符时可以使用括号来指定运算顺序,但这是语法问题。
Java中的方法调用是通过methodName(arguments)
完成的,这意味着您无法以不同的方式表达您尝试表达的内容。这样的括号不用于表示优先级,但它们实际上是语言语法的一部分。
由于方法要求在调用发生之前评估其参数,因此必须在Math.min
之前评估Math.abs
。
答案 1 :(得分:1)
是的,使用链式/嵌套方法调用会更改方法的顺序。首先执行内部的方法,然后执行该方法,依此类推。必须首先计算inside方法,以便围绕它的方法实际上有一个值作为参数传递。如果方法链从外部开始,则不会评估第一个方法的参数/参数,因此计算机将不知道要传递给该方法的值。
答案 2 :(得分:1)
是的,首先计算Math.min,然后计算Math.abs。您在数学课上学到的规则也适用于编程。
Math.abs(Math.min(-6,3));
Math.abs(-6);
6