一段代码读懂加加减减

一段代码读懂加加减减(最后有大招儿哦!)


很多同学在学习程序开发之初都会遇到这烦人的++和–
这个玩意儿确实让人头疼。所以文武老司机分享一端带有注释的代码。
希望能够帮到大家!
最后有大招儿哦!

using System;

namespace _加加减减
{
    class Program
    {
        static void Main(string[] args)
        {

            //总原则:单一变量进行++和——运算,都属于一元变量,其计算优先级最高


            //1. 无论是++还是——,如果处于单一变量左侧(左置),则先进行自增1或自减1运算(该行为会修改该单一变量内存中的值),之后再进行二元运算或者赋值
            //例如:
            int number01 = 5;
            int number02 = 10 + ++number01;
            Console.WriteLine(number01);
            Console.WriteLine(number02);
            //输出结果是:6和16
            /*
                分析:
                1. 运算式10 + ++number01,是二元运算式。其中++number01是一元变量运算式。
                2. 基于总原则,应该先对一元变量运算式进行计算。即完成number01的自增1,之后number01内存中的数值为6,所以number01最后输出也是6
                3. 再将number01内存中的值6与10进行算数加运算。因此number02的最后输出是16

            注:关于--number01的计算:

            int number01 = 5;
            int number02 = 10 + --number01;
            Console.WriteLine(number01);
            Console.WriteLine(number02);

            其输出结果是:4和14

            */



            //2. 无论是++还是——,如果处于单一变量右侧(右置),则先进行二元运算或者赋值,之后再进行自增1或自减1运算(该行为会修改该单一变量内存中的值)
            //例如:
            int number03 = 5;
            int number04 = 10 + number03++;
            Console.WriteLine(number03);
            Console.WriteLine(number04);
            //输出结果是:6和15
            /*
                分析:
                1. 运算式10 + number03++,是二元运算式。其中number03++是一元变量运算式。
                2. 基于总原则,应该先对一元变量运算式进行计算。由于一元变量运算式是number03++,因此应该先将number03内存中的值5与number04内存中的值10进行算数加运算。进行所以number04最后输出也是15
                3. 再将number03内存中的值5完成自增1运算。因此number03的最后输出是6

            注:关于number03——的计算:

            int number03 = 5;
            int number04 = 10 + number03--;
            Console.WriteLine(number03);
            Console.WriteLine(number04);

            其输出结果是:4和15

            */

            /*
            
            总结:
            1. 如果++或--在左(左置),则先自增或自减再运算或赋值(取值)
            2. 如果++或--在右(右置),则先运算或赋值(取值)再自增或自减
            
            */


			//没事开个大!
            //当运算式中出现多个一元变量的++或--(无论左置还是右置),将一元变量看做单一变量,然后按照"()"优于"乘除取余"优于"加减"的顺序执行运算。总原则依然是从左向右。
            int a = 5;
            int b = a++ + ++a * 2 + --a + a++;
            Console.WriteLine(a);
            Console.WriteLine(b);
            /*
            
                运算式为:int b = a++ + ++a * 2 + --a + a++;
                可理解为:int b = (a++) + (++a) * 2 + (--a) + (a++);
                基于从左向右的总原则:
                step01:a++,右置,先赋值(取值)后自增。此时a内存中的值为5,取值为5,自增1后a的内存值为6
                step02:++a,左置,先自增后赋值(取值)。此时a自增1后内存中的值为7,7*2为14,取值为14
                step03:--a,左置,先自减后赋值(取值)。此时a自减1后内存中的值为6,取值为6
                step04:a++,右置,先赋值(取值)后自增。此时a内存中的值为6,取值为6,自增1后a的内存值为7
                综上:int a的值为a最后内存中的值7。   int b的值为前面四步所有取值之和。即5+14+6+6=31。

                输出结果应为:7和31
                
             
            */

        }
    }
}
			
			

That is all!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值