Java自加自减运算

理解:++ 运算,变量自己的值加1。反之,-- 运算,变量自己的值减少1,用法与++ 一致。

1、单独使用

 

练习:

 

  • 变量在单独运算的时候,变量前++和变量后++,变量的是一样的;

  • 变量前++ :例如 ++a

  • 变量后++ :例如 a++

    public class OperatorDemo3 {
    	public static void main(String[] args) {
    		// 定义一个int类型的变量a
    		int a = 3;
    		//++a;
    		a++;
            // 无论是变量前++还是变量后++,结果都是4
    		System.out.println(a);
    	}
    }

    2、复合使用

  • 其他变量放在一起使用或者和输出语句放在一起使用前++后++就产生了不同。

  • 变量前++ :变量先自身加1,然后再取值。

  • 变量后++ :变量先取值,然后再自身加1。

    public class OperatorDemo03 {
    	public static void main(String[] args) {
    		// 其他变量放在一起使用
    		int x = 3;
    		//int y = ++x; // y的值是4,x的值是4,
    		int y = x++; // y的值是3,x的值是4
    		
    		System.out.println(x);
    		System.out.println(y);
    		System.out.println("==========");
            
    		// 和输出语句一起
    		int z = 5;
    		//System.out.println(++z);// 输出结果是6,z的值也是6
    		System.out.println(z++);// 输出结果是5,z的值是6
    		System.out.println(z);
            
            int a = 1;
            a = a++;//(1)先取a的值“1”放操作数栈(2)a再自增,a=2(3)再把操作数栈中的"1"赋值给a,a=1
    
            int i = 1;
            int j = i++ + ++i * i++;
            /*
            从左往右加载
            (1)先算i++
            ①取i的值“1”放操作数栈
            ②i再自增 i=2
            (2)再算++i
            ①i先自增 i=3
            ②再取i的值“3”放操作数栈
            (3)再算i++
            ①取i的值“3”放操作数栈
            ②i再自增 i=4
            (4)先算乘法
            用操作数栈中3 * 3 = 9,并把9压会操作数栈
            (5)再算求和
            用操作数栈中的 1 + 9 = 10
            (6)最后算赋值
            j = 10
            */
    	} 
    }

    小结:

  • ++在前,先自加,后使用;

  • ++在后,先使用,后自加。

  • 练习:

    public class Test11 {
    
        public static void main(String[] args) {
            int i = 1;
            i *= 0.2;
            System.out.println(i);//i==0
            i++;
            System.out.println("i=" + i);//i==1
    
    
            int i1 = 2;
            i1 *= i1++;
            System.out.println(i1);//i==4
    
            int j = 2;
            j *= j+1;
            System.out.println(j);//j==6
    
            int k = 2;
            k *= ++k;
            System.out.println(k);//k==6
            
        }
    }
    // 前++也好,后++也好,这个自增是必须进行的,j是被新赋值之后又变成的0
    // ++有两个动作(两个动作必须先后完成,中间不能被任何操作分割) 
    // 前++:1、自加,2、将数放到操作数栈中 
    // 后++:1、将数放到操作数栈中 ,2、自加

     

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值