在下面的Java代码中,期望值是78,但返回值59。我需要做哪些修改才能获得期望的结果?
public class SampleOne {
public static void main(String[] args) {
int ans=42+45-48-5-15+20*2;
System.out.println(" Ans="+ans);
}
}
答案 0 :(得分:1)
使用大括号进行复杂的操作。
此外,您还应该记住BODMAS规则: 分母乘除法的括号
int ans=(42+45-48-5-15+20)*2;
答案 1 :(得分:1)
您需要考虑operator precedence。在加法({{1})和减法(*
)之前执行乘法运算符(+
),结果为59。
似乎您打算按出现的顺序执行运算符以获得78的结果。您无法更改Java的运算符优先级,但可以强制其在乘法之前执行加/减序列。通过用括号将计算结果括起来将其乘以2:
-
答案 2 :(得分:0)
59正在接收,因为计算机遵循以下优先顺序
除法->乘法->加法->减法
结帐java docs on operator precidence
为了获得预期的结果,您需要使用括号
打开括号-(
和方括号-)
将您的表达式转换为ans=(42+45-48-5-15+20)*2;
以便收到您的预期结果。