宋丹敏 2022-01-16 01:08 采纳率: 66.7%
浏览 76
已结题

Java中 num=num++;语句是什么意思?为什么num++没有被使用?

下面程序运行的结果正确的是: 0 为什么?
public class Demo{   
   public static void main (String args[]) {
     int num=0;
     for (int i=0;i<100;i++) {
       num=num++; //警告提示:num++没有被使用过
     }  
       System.out.println("num="+num);
    }
} 
警告:num++没有被使用过。
个人理解:

①num=num++; 不等价于 num=num; num++;
② num=num++语句中只执行了num=num;

但是问题是:为什么num++不执行了?这不是个for循环吗?如果是按优先级的话,++优先级比=优先级低了。
  • 写回答

2条回答 默认 最新

  • 霖行 2022-01-16 11:27
    关注

    按正常赋值语句,num = num++;是从左到右执行的。首先执行的是num++,后跟++说明先运算后赋值。拆开就是num自增,并有一个保留值tnum,运算时用的是保留值tnum。
    num=num++;类似于

    int tnum = num;//后跟++,先保留原值
    num = num+1;//自增计算
    num = tnum;//用原值计算表达式
    

    不懂的话可以提问,懂了的话不妨点个采纳,谢谢!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月24日
  • 已采纳回答 1月16日
  • 创建了问题 1月16日

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?