代码中的理解是否正确

来源: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++ 


}


}

//简化后的图片

相关截图:

https://img.mukewang.com/climg/638365a409bf52b910080640.jpg

写回答

1回答

好帮手慕小小

2022-11-28

同学你好,同学的理解基本正确,++a ++在前是先进行自增再运算 ,a++是先运算再自增。

if(k>a++)等同于if(12>9),比较结束后a进行自增 为10。并不是证明条件判断中自增会影响变量的值,例如:

if(1>0 || a++>0) 由于短路运算符||,如果第一个表达式的值就能决定表达式最后的结果,运算符右边的表达式就不再计算了,此时a++不会被执行到,a的值不会发生改变。

https://img.mukewang.com/climg/6384165609033afc14670555.jpg

祝学习愉快~

0

0 学习 · 9886 问题

查看课程