科创网络开发有限公司 2016-06-23 00:43 采纳率: 0%
浏览 1382
已采纳

c#中自增与自减运算怎么理解?

using System;

namespace OperatorsAppl
{
class Program
{
static void Main(string[] args)
{
int a = 21;
int b = 10;
int c;

        c = a + b;
        Console.WriteLine("Line 1 - c 的值是 {0}", c);
        c = a - b;
        Console.WriteLine("Line 2 - c 的值是 {0}", c);
        c = a * b;
        Console.WriteLine("Line 3 - c 的值是 {0}", c);
        c = a / b;
        Console.WriteLine("Line 4 - c 的值是 {0}", c);
        c = a % b;
        Console.WriteLine("Line 5 - c 的值是 {0}", c);
        c = a++;
        Console.WriteLine("Line 6 - c 的值是 {0}", c);
        c = a--;
        Console.WriteLine("Line 7 - c 的值是 {0}", c);
        Console.ReadLine();
    }
}

}

运行结果为:
Line 1 - c 的值是 31
Line 2 - c 的值是 11
Line 3 - c 的值是 210
Line 4 - c 的值是 2
Line 5 - c 的值是 1
Line 6 - c 的值是 21
Line 7 - c 的值是 22

为什么:line6-c的值是21而不是22
line7-c的值是22而不是20

  • 写回答

3条回答

  • herozhangbz 2016-06-23 00:56
    关注

    a++和a--是先赋值后运算。++a和--a是先运算后赋值。后面那几行相当于

             c = a;//c=21
                    a=a+1;//a=22
            Console.WriteLine("Line 6 - c 的值是 {0}", c);//输出21
            c = a//c=22,因为a=22
                    a=a-1;//a=21
            Console.WriteLine("Line 7 - c 的值是 {0}", c);//输出22
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)