C# 中的算术运算
这是什么以及为什么需要它?
想象一下你在玩电脑游戏。你有5条命。你通过一个关卡并找到一个急救包,它给你+3条命。你现在有多少条命?没错,8条。这就是算术运算——加法。
在编程中,就像在生活中一样,我们经常需要计算一些东西:玩家得了多少分,账户里还剩多少钱,距离新年还有多少天。算术运算是计算机能够瞬间执行的基本数学操作(加法、减法、乘法、除法)。
为什么需要了解这个?如果你想创建游戏、计算器、费用核算程序甚至简单的聊天机器人——你都必须经常使用算术。没有算术的计算机就像没有按钮的计算器:一块无用的铁块。
语法和代码示例
在C#中,算术运算看起来几乎和数学中一样。以下是基本符号:
+— 加法-— 减法*— 乘法(星号,不是叉号)/— 除法(斜杠)%— 取余(还不明白?我们马上会讲到)
让我们看一些例子。想象我们在编写一个计算学生零花钱的程序。
// 示例1:加钱
int pocketMoney = 500; // 佩佳有500卢布
int giftFromGrandma = 200; // 奶奶又给了200
int totalMoney = pocketMoney + giftFromGrandma; // 相加
Console.WriteLine("佩佳现在有:" + totalMoney + " 卢布");
// 输出:佩佳现在有:700 卢布
这里我们创建了两个带数字的变量(内存单元),将它们相加,并将结果写入第三个变量。就像数学中一样:500 + 200 = 700。
// 示例2:减去支出
int money = 1000; // 原来有一千
int iceCreamPrice = 150; // 冰淇淋价格150
int remaining = money - iceCreamPrice; // 相减
Console.WriteLine("还剩:" + remaining + " 卢布");
// 输出:还剩:850 卢布
这里我们从现有金额中减去冰淇淋的价格。计算机在微秒内就能完成这个操作。
// 示例3:乘法(一周多少钱?)
int dailyAllowance = 100; // 每天100卢布
int daysInWeek = 7;
int weeklyTotal = dailyAllowance * daysInWeek; // 相乘
Console.WriteLine("一周能攒:" + weeklyTotal + " 卢布");
// 输出:一周能攒:700 卢布
乘法只是重复的加法。与其写100+100+100+100+100+100+100,我们写100 * 7。很方便,对吧?
// 示例4:除法(每个朋友分多少?)
int totalCandies = 20; // 20颗糖
int friends = 4; // 4个朋友
int candiesPerFriend = totalCandies / friends; // 相除
Console.WriteLine("每个朋友:" + candiesPerFriend + " 颗糖");
// 输出:每个朋友:5 颗糖
除法像通常一样工作,但有一个技巧:如果你除的是整数,结果也将是整数。20 / 4 = 5,没问题。但如果是20 / 3呢?结果会是6,而不是6.666... 因为我们处理的是整数(int)。对于小数,使用double或float。
// 示例5:取余(谁多出来了?)
int totalCandies = 20;
int friends = 3;
int remainder = totalCandies % friends; // % 是取余
Console.WriteLine("会剩下:" + remainder + " 颗糖");
// 输出:会剩下:2 颗糖
运算符 %(百分号)实际上不是百分比,而是取余。20除以3——得到6个整数和2个余数。这个运算符在需要检查数字是奇数还是偶数时非常有用(如果 number % 2 == 0,则是偶数)。
与Python的比较
Python是另一种流行的编程语言。它的算术看起来非常相似,但有一些区别。让我们比较一下:
| 操作 | C# | Python |
|---|---|---|
| 加法 | int a = 5 + 3; |
a = 5 + 3 |
| 减法 | int b = 10 - 4; |
b = 10 - 4 |
| 乘法 | int c = 6 * 7; |
c = 6 * 7 |
| 除法 | double d = 10.0 / 3;(需要小数点) |
d = 10 / 3(在Python 3中会得到3.333...) |
| 取余 | int e = 10 % 3; |
e = 10 % 3 |
| 乘方 | double f = Math.Pow(2, 3);(通过Math) |
f = 2 ** 3(直接用**) |
主要区别:
- 在C#中需要指定变量类型(int, double),在Python中不需要。
- 在C#中整数除法得到整数结果(10 / 3 = 3),在Python 3中得到小数(10 / 3 = 3.333...)。
- 在C#中进行乘方运算需要调用特殊函数Math.Pow,在Python中有简单的运算符**。
- 在C#中每条命令以分号(;)结束,在Python中不需要。
用于比较的Python示例:
# Python版本
pocket_money = 500
gift = 200
total = pocket_money + gift
print("佩佳现在有:", total, "卢布")
# 输出:佩佳现在有:700 卢布
如你所见,逻辑相同,但语法更简单(没有int,没有;)。然而,C#提供了对数据类型更多的控制,这有助于在大型程序中避免错误。
新手常见错误
当你刚开始时,犯错是正常的。以下是最常见的陷阱:
- 忘记分号
int x = 5— 错误!需要: