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循环吗?如果是按优先级的话,++优先级比=优先级低了。

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

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

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

要么写num=num+1要么直接num++