代码中的理解是否正确
来源:1-1 运算符概述
慕村8299611
2022-11-27 21:28:02
package com.imooc;
public class NumberTest {
public static void main(String[] args) {
int number1=9,number2=7;
if(number2>number1++){
System.out.println(".");
}else {
System.out.println("number1未自增="+number1);//result为10,证明判断表达式中的自增会影响变量的值
number1++;//自增后再自增,结果number1等于11,自增把number1加1再赋值给变量number1
}
System.out.println("number1自增="+number1);//result为11
int number5=9,number6=7;
if(number6>number5++){
System.out.println(".");
}else{
System.out.println("number5未自增="+number5);//result为10,表达式中的自增会影响了变量的值
number5= number5++;//先赋值number5=10,再自增number5++等于11,但自增后的number5的值没有赋值给变量number5
}
System.out.println("number5自增="+number5); //输出的是未自增的变量number5,result为10
//得出结论:number++不等同于number1=number1++
}
}
//简化后的图片
相关截图:
1回答
好帮手慕小小
2022-11-28
同学你好,同学的理解基本正确,++a ++在前是先进行自增再运算 ,a++是先运算再自增。
if(k>a++)等同于if(12>9),比较结束后a进行自增 为10。并不是证明条件判断中自增会影响变量的值,例如:
if(1>0 || a++>0) 由于短路运算符||,如果第一个表达式的值就能决定表达式最后的结果,运算符右边的表达式就不再计算了,此时a++不会被执行到,a的值不会发生改变。
祝学习愉快~
相似问题
回答 1
回答 1