1. 编程基础:数学运算与逻辑判断
在编程世界中,数据存储只是第一步,真正让程序"活"起来的是对数据的处理和判断。就像我们日常生活中需要做各种计算和决策一样,程序也需要通过运算符和条件语句来完成这些任务。今天我们就来深入探讨C#中的数学运算与逻辑判断,这是每个程序员必须掌握的核心技能。
记得我刚学编程时,最常犯的错误就是把赋值运算符=和比较运算符==搞混。有一次调试了整整两小时,才发现是一个等号的问题。这种基础但关键的细节,我会在后面的内容中特别强调。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 算术运算符详解
2.1 基本算术运算
算术运算符是我们最熟悉的编程工具之一,它们用于执行基本的数学计算。C#提供了五种基本算术运算符:
csharp复制int a = 10 + 5; // 加法 → 15
int b = 10 - 5; // 减法 → 5
int c = 10 * 5; // 乘法 → 50
double d = 10.0 / 3; // 除法 → 3.333...
int e = 10 % 3; // 取余 → 1
注意:整数除法和浮点数除法有重要区别。当两个操作数都是整数时,/执行的是整数除法,结果会舍弃小数部分。
2.2 取余运算符的妙用
取余运算符%看似简单,但在实际开发中用途广泛:
csharp复制// 判断奇偶数
bool isEven = (number % 2 == 0);
// 循环中周期性操作
for(int i = 0; i < 100; i++) {
if(i % 10 == 0) {
Console.WriteLine($"每10次执行一次,当前i={i}");
}
}
// 限制数值范围
int limitedValue = bigNumber % range;
2.3 运算符优先级与括号使用
运算符优先级决定了表达式中运算的执行顺序。记住这个简单的优先级顺序:
- 括号
() - 乘法
*、除法/、取余% - 加法
+、减法-
csharp复制int result1 = 2 + 3 * 4; // 14 (先乘后加)
int result2 = (2 + 3) * 4; // 20 (括号改变优先级)
在实际编码中,即使知道优先级规则,也建议多用括号明确意图,这样代码更易读,也能避免潜在的错误。
3. 比较与逻辑运算符
3.1 比较运算符实战
比较运算符用于比较两个值,返回布尔结果(true/false):
csharp复制int age = 25;
bool isAdult = age >= 18; // true
bool isTeenager = age > 12 && age < 20; // false
常见比较运算符包括:
==等于!=不等于<小于>大于<=小于等于>=大于等于
特别注意:比较相等时使用
==,而不是赋值运算符=。这是新手最常见的错误之一。
3.2 逻辑运算符深度解析
逻辑运算符用于组合多个条件判断:
csharp复制bool hasTicket = true;
bool hasTime = false;
bool canWatchMovie = hasTicket && hasTime; // false
bool isWeekend = true;
bool isHoliday = false;
bool canRest = isWeekend || isHoliday; // true
bool isStudent = true;
bool isNotStudent = !isStudent; // false
逻辑运算符的真值表:
AND(&&)运算符
| A | B | A && B |
|---|---|---|
| T | T | T |
| T | F | F |
| F | T | F |
| F | F | F |
OR(||)运算符
| A | B | A || B |
|---|---|-------|
| T | T | T |
| T | F | T |
| F | T | T |
| F | F | F |
NOT(!)运算符
| A | !A |
|---|---|
| T | F |
| F | T |
3.3 短路求值特性
C#的逻辑运算符具有短路求值特性,这在某些场景下非常有用:
csharp复制// 如果person为null,不会执行后面的判断,避免NullReferenceException
if(person != null && person.Age > 18) {
// ...
}
// 如果第一个条件为true,不会计算第二个条件
if(isAdmi
