练习 - 递增和递减值
在本模块中,你将了解的最后一项基本作是如何使用特殊运算符递增和递减值,这些运算符是符号的组合。
递增和递减
通常,需要递增和/或递减值,尤其是在编写与数据结构交互的循环逻辑或代码时。
运算符 += 将运算符右侧的值添加到运算符左侧的值并赋值。 因此,以下代码片段中的第二行和第三行相同:
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.
这些相同的技术可用于减法、乘法等。 以下练习步骤将重点介绍几个步骤。
注释
运算符(如 +=、-=、*=++和--)称为复合赋值运算符,因为它们除了将结果赋给变量外,还会对某些运算进行复合。 该 += 运算符专门称为 加法赋值 运算符。
编写代码以递增和递减值
选择 .NET 编辑器中的所有代码,请按 Delete 键或 Backspace 键删除它。
在 .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);运行代码。 应会看到以下输出:
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++ 将在检索值后递增该值。
在值前后使用增量运算符
删除上述步骤中的代码,然后在 .NET 编辑器中输入以下代码:
int value = 1; value++; Console.WriteLine("First: " + value); Console.WriteLine($"Second: {value++}"); Console.WriteLine("Third: " + value); Console.WriteLine("Fourth: " + (++value));运行代码。 应会看到以下输出:
First: 2 Second: 2 Third: 3 Fourth: 4
请注意以下代码行:
Console.WriteLine($"Second: {value++}");
此行包括两个步骤:
- 检索变量
value的当前值,并在字符串内插作中使用该值。 - 递增该值。
下一行代码确认值实际上是递增的。
Console.WriteLine("Third: " + value);
相比之下,请考虑最后一行代码:
Console.WriteLine("Fourth: " + (++value));
运算顺序在此处发生变化,因为++运算符放置在运算数value之前。
- 递增该值。
- 从变量
value中检索新的递增值,并在字符串操作中使用该值。
虽然并非严格必要,但围绕表达式 (++value) 添加了括号以提高可读性。 看到那么多彼此相邻的+操作符,这似乎可能会被其他开发人员误解。 这样的风格决策是主观的。 但是,由于你将编写代码一次但多次读取代码,因此应优先考虑可读性。
回顾
以下是到目前为止你学习到的关于 C# 中的数学运算的知识:
- 使用复合赋值运算符(例如
+=,、-=*=、)++执行--数学运算(如递增或递减),然后将结果分配给原始变量。 - 递增和递减运算符的执行方式不同,具体取决于运算符是在操作数之前还是之后。