为什么poc在每次乘法完成后我的变量值都没有更新System.out.println();?
public static void main(String[] args) {
byte poc = 0b0001;
System.out.println("The value of byte " + poc + " when multiplied by 0010 is: " + poc*0b0010);
System.out.println("The value of byte " + poc + " when multiplied by 0010 is: " + poc*0b0010);
System.out.println("The value of byte " + poc + " when multiplied by 0010 is: " + poc*0b0010);
System.out.println("The value of byte " + poc + " when multiplied by 0010 is: " + poc*0b0010);
System.out.println("The value of byte " + poc + " when multiplied by 0010 is: " + poc*0b0010);
System.out.println("The value of byte " + poc + " when multiplied by 0010 is: " + poc*0b0010);
System.out.println("The value of byte " + poc + " when multiplied by 0010 is: " + poc*0b0010);
System.out.println("The value of byte " + poc + " when multiplied by 0010 is: " + poc*0b0010);
}
Run Code Online (Sandbox Code Playgroud)
ps这不是功课.我是Java的新手,我正在努力掌握传值的概念.我不明白为什么不是poc每次在println声明中乘以更新的值.例如,在下面的代码变量poc中每次都会更新.
public static void main(String[] args) {
byte poc = 0b0001;
System.out.println("The value of byte " + poc + " when incremented by 1 is: " + ++poc);
System.out.println("The value of byte " + poc + " when incremented by 1 is: " + ++poc);
System.out.println("The value of byte " + poc + " when incremented by 1 is: " + ++poc);
System.out.println("The value of byte " + poc + " when incremented by 1 is: " + ++poc);
System.out.println("The value of byte " + poc + " when incremented by 1 is: " + ++poc);
System.out.println("The value of byte " + poc + " when incremented by 1 is: " + ++poc);
System.out.println("The value of byte " + poc + " when incremented by 1 is: " + ++poc);
System.out.println("The value of byte " + poc + " when incremented by 1 is: " + ++poc);
}
Run Code Online (Sandbox Code Playgroud)
为什么在第二段代码中更新,而不是在第一段中更新?
这真的与传值†无关
poc*0b0010不是分配的结果的语句poc*0b0010来poc,它只是它返回乘法结果的表达式.
++poc是一个表达式,它递增poc(赋值)并返回赋值的结果.
请注意,您可以使用*=(复合赋值运算符)通过poc*0b0010括号括起来在字符串连接中创建带括号的表达式:
System.out.println("The value of byte " + poc
+ " when multiplied by 0010 is: " + (poc*=0b0010));
Run Code Online (Sandbox Code Playgroud)
有关算术和赋值的完整教程,请参阅Java教程>赋值,算术和一元运算符.
另见JLS:15.15.1.前缀增量运算符++和15.17.1.乘法运算符*
† 有关传值的信息,请参阅本Java教程中的 "传递原始数据类型参数"部分
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |