第5章 - 运算符
嗨,朋友!我是长安。
上一章我们学习了如何存储数据,这一章我们要学习如何操作这些数据——运算符!运算符让程序能够进行计算、比较和逻辑判断。
🤔 什么是运算符?
运算符就是对数据进行操作的符号。
类比:就像数学里的 +、-、×、÷ 一样,编程中也有各种运算符。
🌟 算术运算符
最基础的运算符,用于数学计算。
| 运算符 | 说明 | 示例 | 结果 |
|---|---|---|---|
+ | 加法 | 5 + 3 | 8 |
- | 减法 | 5 - 3 | 2 |
* | 乘法 | 5 * 3 | 15 |
/ | 除法 | 5 / 2 | 2(整数除法) |
% | 取余(模) | 5 % 2 | 1 |
++ | 自增 | x++ | x = x + 1 |
-- | 自减 | x-- | x = x - 1 |
完整示例
using System;
namespace OperatorsDemo
{
class Program
{
static void Main(string[] args)
{
// 基本算术运算
int a = 10;
int b = 3;
Console.WriteLine($"{a} + {b} = {a + b}"); // 13
Console.WriteLine($"{a} - {b} = {a - b}"); // 7
Console.WriteLine($"{a} * {b} = {a * b}"); // 30
Console.WriteLine($"{a} / {b} = {a / b}"); // 3(整数除法)
Console.WriteLine($"{a} % {b} = {a % b}"); // 1(余数)
// 浮点数除法
double c = 10.0;
double d = 3.0;
Console.WriteLine($"{c} / {d} = {c / d}"); // 3.333...
// 自增自减
int x = 5;
x++; // x = x + 1
Console.WriteLine($"x++ 后:{x}"); // 6
x--; // x = x - 1
Console.WriteLine($"x-- 后:{x}"); // 5
Console.ReadKey();
}
}
}
注意整数除法
两个整数相除结果还是整数,小数部分会被舍弃!
int result = 5 / 2; // 结果是 2,不是 2.5
double result2 = 5.0 / 2; // 结果是 2.5
📊 赋值运算符
用于给变量赋值。
| 运算符 | 说明 | 等价于 |
|---|---|---|
= | 赋值 | - |
+= | 加后赋值 | x = x + 5 |
-= | 减后赋值 | x = x - 5 |
*= | 乘后赋值 | x = x * 5 |
/= | 除后赋值 | x = x / 5 |
%= | 取余后赋值 | x = x % 5 |
int score = 100;
score += 10; // score = score + 10; // 110
score -= 5; // score = score - 5; // 105
score *= 2; // score = score * 2; // 210
score /= 3; // score = score / 3; // 70
score %= 8; // score = score % 8; // 6
Console.WriteLine($"最终分数:{score}");
🔍 比较运算符
用于比较两个值的大小关系,结果是布尔类型(true 或 false)。
| 运算符 | 说明 | 示例 | 结果 |
|---|---|---|---|
== | 等于 | 5 == 5 | true |
!= | 不等于 | 5 != 3 | true |
> | 大于 | 5 > 3 | true |
< | 小于 | 5 < 3 | false |
>= | 大于等于 | 5 >= 5 | true |
<= | 小于等于 | 5 <= 3 | false |
int age = 18;
Console.WriteLine(age >= 18); // true,成年
Console.WriteLine(age < 18); // false,未成年
int score = 85;
bool isPassed = score >= 60;
Console.WriteLine($"是否及格:{isPassed}"); // true
注意
- 等于是
==(两个等号),不是=(一个等号) =是赋值,==是比较
🧠 逻辑运算符
用于组合多个条件,结果是布尔类型。
| 运算符 | 说明 | 示例 | 解释 |
|---|---|---|---|
&& | 逻辑与(并且) | a && b | 两个都为 true 才是 true |
|| | 逻辑或(或者) | a || b | 至少一个为 true 就是 true |
! | 逻辑非(取反) | !a | true 变 false,false 变 true |
真值表
逻辑与 (&&)
| A | B | A && B |
|---|---|---|
| true | true | true |
| true | false | false |
| false | true | false |
| false | false | false |
逻辑或 (||)
| A | B | A || B |
|---|---|---|
| true | true | true |
| true | false | true |
| false | true | true |
| false | false | false |
// 判断是否是成年人且是学生
int age = 20;
bool isStudent = true;
bool canGetDiscount = age >= 18 && isStudent;
Console.WriteLine($"可以享受学生折扣:{canGetDiscount}"); // true
// 判断是否符合招聘要求(年龄18-60岁)
age = 25;
bool isEligible = age >= 18 && age <= 60;
Console.WriteLine($"符合招聘要求:{isEligible}"); // true
// 判断是否需要买票(12岁以下或60岁以上免票)
age = 10;
bool needTicket = !(age < 12 || age > 60);
Console.WriteLine($"需要买票:{needTicket}"); // false
🎯 运算符优先级
当一个表达式中有多个运算符时,按照优先级执行。
| 优先级 | 运算符 | 说明 |
|---|---|---|
| 1(最高) | () | 括号 |
| 2 | !、++、-- | 一元运算符 |
| 3 | *、/、% | 乘除取余 |
| 4 | +、- | 加减 |
| 5 | <、>、<=、>= | 比较 |
| 6 | ==、!= | 相等 |
| 7 | && | 逻辑与 |
| 8(最低) | || | 逻辑或 |
int result = 2 + 3 * 4; // 14(先乘后加)
int result2 = (2 + 3) * 4; // 20(括号优先)
bool check = 5 > 3 && 8 < 10; // true(先比较后逻辑)
建议
不确定优先级时,使用括号明确表达意图,代码更清晰!
💡 实战示例
示例1:计算 BMI
using System;
namespace BMICalculator
{
class Program
{
static void Main(string[] args)
{
Console.Write("请输入体重(kg):");
double weight = double.Parse(Console.ReadLine());
Console.Write("请输入身高(m):");
double height = double.Parse(Console.ReadLine());
// 计算 BMI = 体重 / 身高²
double bmi = weight / (height * height);
Console.WriteLine($"\n你的 BMI 是:{bmi:F2}");
// 判断体重状态
if (bmi < 18.5)
{
Console.WriteLine("体重过轻");
}
else if (bmi >= 18.5 && bmi < 24)
{
Console.WriteLine("体重正常");
}
else if (bmi >= 24 && bmi < 28)
{
Console.WriteLine("体重过重");
}
else
{
Console.WriteLine("肥胖");
}
Console.ReadKey();
}
}
}
示例2:判断闰年
using System;
namespace LeapYear
{
class Program
{
static void Main(string[] args)
{
Console.Write("请输入年份:");
int year = int.Parse(Console.ReadLine());
// 闰年条件:能被4整除但不能被100整除,或者能被400整除
bool isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
if (isLeapYear)
{
Console.WriteLine($"{year} 是闰年");
}
else
{
Console.WriteLine($"{year} 不是闰年");
}
Console.ReadKey();
}
}
}
📝 本章小结
- 算术运算符:
+、-、*、/、%、++、-- - 赋值运算符:
=、+=、-=、*=、/=、%= - 比较运算符:
==、!=、>、<、>=、<= - 逻辑运算符:
&&、||、! - 使用括号明确运算顺序
🎯 下一步
掌握了运算符后,下一章我们要学习控制流程,让程序能够做出判断和选择!
💪 练习题
- 编写程序,输入两个数,计算并输出它们的和、差、积、商、余数
- 判断一个数是否是偶数(提示:能被2整除)
- 输入三个数,判断能否构成三角形(任意两边之和大于第三边)
- 计算你的年龄是否达到驾驶汽车的法定年龄(18岁)
答案提示
- 使用所有算术运算符
- 使用
%运算符:num % 2 == 0 - 使用逻辑与:
a + b > c && b + c > a && a + c > b - 使用比较运算符:
age >= 18
