C# 完全学习指南C# 完全学习指南
首页
基础教程
进阶内容
实战项目
编程指南
首页
基础教程
进阶内容
实战项目
编程指南
  • 基础教程

    • 📚 基础教程
    • 第1章 - 认识 C#
    • 第2章 - 环境搭建
    • 第3章 - 第一个程序
    • 第4章 - 变量与数据类型
    • 第5章 - 运算符
    • 第6章 - 控制流程
    • 第7章 - 循环语句
    • 第8章 - 数组
    • 第9章 - 方法
    • 第10章 - 面向对象基础
    • 第11章 - 类与对象
    • 第12章 - 继承
    • 第13章 - 多态
    • 第14章 - 封装
    • 第15章 - 接口

第5章 - 运算符

嗨,朋友!我是长安。

上一章我们学习了如何存储数据,这一章我们要学习如何操作这些数据——运算符!运算符让程序能够进行计算、比较和逻辑判断。

🤔 什么是运算符?

运算符就是对数据进行操作的符号。

类比:就像数学里的 +、-、×、÷ 一样,编程中也有各种运算符。

🌟 算术运算符

最基础的运算符,用于数学计算。

运算符说明示例结果
+加法5 + 38
-减法5 - 32
*乘法5 * 315
/除法5 / 22(整数除法)
%取余(模)5 % 21
++自增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 == 5true
!=不等于5 != 3true
>大于5 > 3true
<小于5 < 3false
>=大于等于5 >= 5true
<=小于等于5 <= 3false
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
!逻辑非(取反)!atrue 变 false,false 变 true

真值表

逻辑与 (&&)

ABA && B
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse

逻辑或 (||)

ABA || B
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse
// 判断是否是成年人且是学生
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();
        }
    }
}

📝 本章小结

  • 算术运算符:+、-、*、/、%、++、--
  • 赋值运算符:=、+=、-=、*=、/=、%=
  • 比较运算符:==、!=、>、<、>=、<=
  • 逻辑运算符:&&、||、!
  • 使用括号明确运算顺序

🎯 下一步

掌握了运算符后,下一章我们要学习控制流程,让程序能够做出判断和选择!

下一章:控制流程 →

💪 练习题

  1. 编写程序,输入两个数,计算并输出它们的和、差、积、商、余数
  2. 判断一个数是否是偶数(提示:能被2整除)
  3. 输入三个数,判断能否构成三角形(任意两边之和大于第三边)
  4. 计算你的年龄是否达到驾驶汽车的法定年龄(18岁)
答案提示
  1. 使用所有算术运算符
  2. 使用 % 运算符:num % 2 == 0
  3. 使用逻辑与:a + b > c && b + c > a && a + c > b
  4. 使用比较运算符:age >= 18
最近更新: 2025/12/27 14:02
Contributors: 王长安
Prev
第4章 - 变量与数据类型
Next
第6章 - 控制流程