for(int i = 1; i <= 5; i++) {
for(int j = 1; j <= i; j++) {
int a = i + j*2;
System.out.print(a);
}
}
Run Code Online (Sandbox Code Playgroud)
当运行上面的代码我得到输出为
3
46
579
681012
79111315
Run Code Online (Sandbox Code Playgroud)
我无法理解为什么它按照逻辑将第一行打印为3,i + j*2 = 4.
我无法理解为什么它按照逻辑将第一行打印为3,i + j*2 = 4.
优先级.乘法的优先级高于另外,等等第一个呼叫,i+j*2是1+1*2这1+(1*2)是1+2这是3.
可以用PEMDAS或BODMAS记住基本操作的优先级("MD"和"AS"具有相同的优先级,所以我在这里将它们显示在一行上):
P Parentheses / Brackets B E Exponenentiation / Orders1 O MD Multiplication & Division DM AS Addition and Subtraction AS
1个力量(2 ^ 5),平方根等
Java站点有一个关于运算符优先级的页面,该页面包含以下表:
postfixexpr++ expr--unary++expr --expr +expr -expr ~ !multiplicative* / %additive+ -shift<< >> >>>relational< > <= >= instanceofequality== !=bitwise AND&bitwise exclusive OR^bitwise inclusive OR|logical AND&&logical OR||ternary1? :assignment= += -= *= /= %= &= ^= |= <<= >>= >>>=
1它们是指条件运算符,它是一个三元运算符(一个接受三个操作数的运算符),并且恰好是Java中唯一的运算符.
| 归档时间: |
|
| 查看次数: |
43 次 |
| 最近记录: |