练习 - 递增和递减值

已完成

在本模块中,你将了解的最后一项基本作是如何使用特殊运算符递增和递减值,这些运算符是符号的组合。

递增和递减

通常,需要递增和/或递减值,尤其是在编写与数据结构交互的循环逻辑或代码时。

运算符 += 将运算符右侧的值添加到运算符左侧的值并赋值。 因此,以下代码片段中的第二行和第三行相同:

int value = 0;     // value is now 0.
value = value + 5; // value is now 5.
value += 5;        // value is now 10.

运算符 ++ 将变量的值递增 1。 因此,以下代码片段中的第二行和第三行相同:

int value = 0;     // value is now 0.
value = value + 1; // value is now 1.
value++;           // value is now 2.

这些相同的技术可用于减法、乘法等。 以下练习步骤将重点介绍几个步骤。

注释

运算符(如 +=-=*=++--)称为复合赋值运算符,因为它们除了将结果赋给变量外,还会对某些运算进行复合。 该 += 运算符专门称为 加法赋值 运算符。

编写代码以递增和递减值

  1. 选择 .NET 编辑器中的所有代码,请按 Delete 键或 Backspace 键删除它。

  2. 在 .NET 编辑器中输入以下代码:

    int value = 1;
    
    value = value + 1;
    Console.WriteLine("First increment: " + value);
    
    value += 1;
    Console.WriteLine("Second increment: " + value);
    
    value++;
    Console.WriteLine("Third increment: " + value);
    
    value = value - 1;
    Console.WriteLine("First decrement: " + value);
    
    value -= 1;
    Console.WriteLine("Second decrement: " + value);
    
    value--;
    Console.WriteLine("Third decrement: " + value);
    
  3. 运行代码。 应会看到以下输出:

    First increment: 2
    Second increment: 3
    Third increment: 4
    First decrement: 3
    Second decrement: 2
    Third decrement: 1
    

注释

在“第二次增加”中,使用了 value += 1;。 但是,你可以使用任何字面 int 值(或变量)来增加该数值。 这同样适用于“第二次递减”:value -= 1;

确定递增和递减运算符的位置

递增和递减运算符都有一个有趣的性质——根据它们的位置,它们会在检索其值之前或之后执行操作。 换言之,如果像在 ++value 中一样在值之前使用运算符,则递增会在检索值之前出现。 同样, value++ 将在检索值后递增该值。

在值前后使用增量运算符

  1. 删除上述步骤中的代码,然后在 .NET 编辑器中输入以下代码:

    int value = 1;
    value++;
    Console.WriteLine("First: " + value);
    Console.WriteLine($"Second: {value++}");
    Console.WriteLine("Third: " + value);
    Console.WriteLine("Fourth: " + (++value));
    
  2. 运行代码。 应会看到以下输出:

    First: 2
    Second: 2
    Third: 3
    Fourth: 4
    

请注意以下代码行:

Console.WriteLine($"Second: {value++}");

此行包括两个步骤:

  1. 检索变量 value 的当前值,并在字符串内插作中使用该值。
  2. 递增该值。

下一行代码确认值实际上是递增的。

Console.WriteLine("Third: " + value);

相比之下,请考虑最后一行代码:

Console.WriteLine("Fourth: " + (++value));

运算顺序在此处发生变化,因为++运算符放置在运算数value之前。

  1. 递增该值。
  2. 从变量 value 中检索新的递增值,并在字符串操作中使用该值。

虽然并非严格必要,但围绕表达式 (++value) 添加了括号以提高可读性。 看到那么多彼此相邻的+操作符,这似乎可能会被其他开发人员误解。 这样的风格决策是主观的。 但是,由于你将编写代码一次但多次读取代码,因此应优先考虑可读性。

回顾

以下是到目前为止你学习到的关于 C# 中的数学运算的知识:

  • 使用复合赋值运算符(例如+=,、-=*=、)++执行--数学运算(如递增或递减),然后将结果分配给原始变量。
  • 递增和递减运算符的执行方式不同,具体取决于运算符是在操作数之前还是之后。