首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >第二章:C# 编程基础:变量、数据类型

第二章:C# 编程基础:变量、数据类型

作者头像
云中小生
发布2025-11-15 12:02:53
发布2025-11-15 12:02:53
310
举报

第二章:C# 编程基础:变量、数据类型

2.1 变量与常量

什么是变量?

变量是程序中存储数据的基本单元,可以理解为命名的内存空间,用于在程序运行期间存储和操作数据。

变量的声明和初始化

基本语法:

代码语言:javascript
复制
// 变量声明语法:数据类型 变量名;
int age;                    // 声明一个整数变量
string name;               // 声明一个字符串变量

// 变量初始化:声明的同时赋值
int score = 100;           // 声明并初始化
double price = 19.99;      // 声明双精度浮点数
bool isActive = true;      // 声明布尔值
char grade = 'A';          // 声明字符

使用 var 关键字

C# 支持类型推断,可以使用 var 关键字让编译器自动推断变量类型:

代码语言:javascript
复制
var count = 10;           // 编译器推断为 int
var message = "Hello";    // 编译器推断为 string
var salary = 2500.50;     // 编译器推断为 double

注意: 使用 var 时必须立即初始化,这样编译器才能推断类型。

常量

常量是在程序运行期间值不会改变的变量:

代码语言:javascript
复制
const double PI = 3.14159;
const int MAX_USERS = 100;
const string APP_NAME = "我的应用";

常量特点:

  • 声明时必须初始化
  • 值在程序运行期间不能改变
  • 通常使用大写字母命名

命名规则和规范

必须遵守的规则:

  • 以字母或下划线开头
  • 只能包含字母、数字、下划线
  • 不能是 C# 关键字(如 int, class 等)

命名规范(约定俗成):

  • 使用有意义的名称
  • 变量名使用驼峰命名法:firstName, totalCount
  • 常量名使用全大写:MAX_SIZE, DEFAULT_TIMEOUT
命名流程
命名流程

命名流程


2.2 数据类型

C# 数据类型分为两大类:值类型引用类型

值类型(Value Types)

值类型变量直接包含数据,存储在栈内存中。

基本数值类型:

代码语言:javascript
复制
// 整数类型
byte smallNumber = 255;           // 0 到 255
short mediumNumber = 32000;       // -32,768 到 32,767
int number = 2147483647;          // 最常用,-21亿 到 21亿
long bigNumber = 9223372036854775807L;  // 很大的整数,后缀L

// 浮点类型
float price = 9.99f;              // 单精度,后缀f
double distance = 123.456;        // 双精度,默认浮点类型
decimal money = 999.99m;          // 金融计算,高精度,后缀m

// 其他类型
bool isReady = false;             // true 或 false
char letter = 'C';                // 单个字符,单引号

结构体(struct):

代码语言:javascript
复制
// 预定义的结构体
DateTime today = DateTime.Now;
DateOnly birthDate = new DateOnly(1990, 5, 15);
TimeOnly currentTime = new TimeOnly(14, 30, 0);

引用类型(Reference Types)

引用类型变量存储的是数据的引用(内存地址),数据本身存储在堆内存中。

字符串(string):

代码语言:javascript
复制
string greeting = "Hello, World!";
string name = "张三";
string emptyString = "";          // 空字符串
string nullString = null;         // 空引用

// 字符串操作
string firstName = "John";
string lastName = "Doe";
string fullName = firstName + " " + lastName;  // 字符串拼接

数组(Array):

代码语言:javascript
复制
// 一维数组
int[] numbers = new int[5];               // 声明长度为5的整数数组
int[] scores = { 90, 85, 78, 92, 88 };   // 声明并初始化

// 访问数组元素
numbers[0] = 10;        // 第一个元素(索引从0开始)
numbers[1] = 20;        // 第二个元素
int firstScore = scores[0];  // 读取第一个分数

// 获取数组长度
int length = scores.Length;   // 返回5

类(class):(我们将在面向对象章节详细学习)

C#数据类型图
C#数据类型图

C#数据类型图


2.3 运算符

算术运算符

代码语言:javascript
复制
int a = 10, b = 3;

int sum = a + b;        // 13,加法
int difference = a - b; // 7,减法
int product = a * b;    // 30,乘法
int quotient = a / b;   // 3,整数除法
int remainder = a % b;  // 1,取余(模运算)

// 自增自减
a++;    // a = a + 1,后置自增
++a;    // 前置自增
b--;    // b = b - 1,后置自减
--b;    // 前置自减

关系运算符

返回 bool 值(truefalse):

代码语言:javascript
复制
int x = 5, y = 10;

bool isEqual = (x == y);        // false,相等
bool notEqual = (x != y);       // true,不等
bool greaterThan = (x > y);     // false,大于
bool lessThan = (x < y);        // true,小于
bool greaterOrEqual = (x >= y); // false,大于等于
bool lessOrEqual = (x <= y);    // true,小于等于

逻辑运算符

用于布尔表达式:

代码语言:javascript
复制
bool hasLicense = true;
bool hasCar = false;
int age = 25;

bool canDrive = hasLicense && hasCar;    // false,逻辑与
bool canApply = hasLicense || hasCar;    // true,逻辑或
bool cannotDrive = !hasLicense;          // false,逻辑非

// 复杂逻辑
bool isAdult = age >= 18;                // true
bool isSenior = age >= 65;               // false
bool validAge = isAdult && !isSenior;    // true

赋值运算符

代码语言:javascript
复制
int total = 10;

total += 5;     // total = total + 5,现在为15
total -= 3;     // total = total - 3,现在为12
total *= 2;     // total = total * 2,现在为24
total /= 4;     // total = total / 4,现在为6
total %= 5;     // total = total % 5,现在为1

条件运算符(三元运算符)

代码语言:javascript
复制
int score = 85;
string result = (score >= 60) ? "及格" : "不及格";
// 如果score >= 60为true,返回"及格",否则返回"不及格"

2.4 控制流

条件语句

if-else 语句:

代码语言:javascript
复制
int temperature = 25;

if (temperature > 30)
{
    Console.WriteLine("天气很热");
}
else if (temperature > 20)
{
    Console.WriteLine("天气舒适");
}
else
{
    Console.WriteLine("天气较冷");
}
温度判断流程图
温度判断流程图

温度判断流程图

switch 语句:

代码语言:javascript
复制
int dayOfWeek = 3;
string dayName;

switch (dayOfWeek)
{
    case1:
        dayName = "星期一";
        break;
    case2:
        dayName = "星期二";
        break;
    case3:
        dayName = "星期三";
        break;
    case4:
        dayName = "星期四";
        break;
    case5:
        dayName = "星期五";
        break;
    default:
        dayName = "周末";
        break;
}

循环语句

for 循环:

代码语言:javascript
复制
// 打印1到5的数字
for (int i = 1; i <= 5; i++)
{
    Console.WriteLine(i);
}

// 计算1到100的和
int sum = 0;
for (int i = 1; i <= 100; i++)
{
    sum += i;
}
Console.WriteLine($"1到100的和是:{sum}");
循环流程图
循环流程图

循环流程图

while 循环:

代码语言:javascript
复制
// 当条件为真时执行循环
int count = 1;
while (count <= 5)
{
    Console.WriteLine(count);
    count++;  // 不要忘记更新条件变量,否则会无限循环
}

do-while 循环:

代码语言:javascript
复制
// 至少执行一次,然后检查条件
int number;
do
{
    Console.WriteLine("请输入一个正数:");
    number = Convert.ToInt32(Console.ReadLine());
} while (number <= 0);

foreach 循环:

代码语言:javascript
复制
// 遍历数组或集合中的每个元素
string[] fruits = { "苹果", "香蕉", "橙子", "葡萄" };

foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}

跳转语句

代码语言:javascript
复制
// break - 跳出循环
for (int i = 1; i <= 10; i++)
{
    if (i == 5)
        break;  // 当i等于5时跳出循环
    Console.WriteLine(i);
}

// continue - 跳过本次循环
for (int i = 1; i <= 5; i++)
{
    if (i == 3)
        continue;  // 跳过i=3的这次循环
    Console.WriteLine(i);
}

📝 动手练习

练习1:简单计算器

简单计算器实现流程
简单计算器实现流程

简单计算器实现流程

代码语言:javascript
复制
// 编写一个程序,接受用户输入的两个数字和运算符,然后计算结果
Console.Write("请输入第一个数字:");
double num1 = Convert.ToDouble(Console.ReadLine());

Console.Write("请输入运算符(+, -, *, /):");
char op = Convert.ToChar(Console.ReadLine());

Console.Write("请输入第二个数字:");
double num2 = Convert.ToDouble(Console.ReadLine());

double result = 0;
bool validOperation = true;

if (op == '+')
    result = num1 + num2;
elseif (op == '-')
    result = num1 - num2;
elseif (op == '*')
    result = num1 * num2;
elseif (op == '/')
{
    if (num2 != 0)
        result = num1 / num2;
    else
    {
        Console.WriteLine("错误:除数不能为零!");
        validOperation = false;
    }
}
else
{
    Console.WriteLine("错误:无效的运算符!");
    validOperation = false;
}

if (validOperation)
    Console.WriteLine($"结果:{num1} {op} {num2} = {result}");
简单计算器效果截图
简单计算器效果截图

简单计算器效果截图

练习2:猜数字游戏

猜数字游戏实现流程
猜数字游戏实现流程

猜数字游戏实现流程

代码语言:javascript
复制
Random random = new Random();
int secretNumber = random.Next(1, 101);  // 1到100的随机数
int guess = 0;
int attempts = 0;

Console.WriteLine("猜数字游戏!我想了一个1到100之间的数字。");

while (guess != secretNumber)
{
    Console.Write("请输入你的猜测:");
    guess = Convert.ToInt32(Console.ReadLine());
    attempts++;

    if (guess < secretNumber)
        Console.WriteLine("太小了!再试一次。");
    elseif (guess > secretNumber)
        Console.WriteLine("太大了!再试一次。");
    else
        Console.WriteLine($"恭喜!你猜对了!用了{attempts}次尝试。");
}
效果截图
效果截图

效果截图

练习3:成绩等级判断

代码语言:javascript
复制
Console.Write("请输入成绩(0-100):");
int score = Convert.ToInt32(Console.ReadLine());
string grade;

if (score >= 90)
    grade = "优秀";
elseif (score >= 80)
    grade = "良好";
elseif (score >= 70)
    grade = "中等";
elseif (score >= 60)
    grade = "及格";
else
    grade = "不及格";

Console.WriteLine($"成绩等级:{grade}");
成绩等级判断效果截图
成绩等级判断效果截图

成绩等级判断效果截图


💡 重点回顾

  • 变量用于存储数据,常量的值不可改变
  • C# 有值类型引用类型两大类数据类型
  • 运算符用于执行算术、比较和逻辑操作
  • 控制流语句(条件、循环)控制程序的执行流程
  • 使用 if-else 进行条件判断,使用 forwhile 进行循环
  • switch 语句适合多分支选择,foreach 适合遍历集合

🎯 本章挑战

综合练习:学生成绩管理系统

编写一个程序,能够:

  • 输入5个学生的成绩
  • 计算平均分
  • 找出最高分和最低分
  • 统计及格人数
  • 显示所有成绩及等级

提示: 使用数组存储成绩,使用循环进行输入和计算。

学生成绩管理系统实现流程图
学生成绩管理系统实现流程图

学生成绩管理系统实现流程图

学生成绩管理系统效果示意图
学生成绩管理系统效果示意图

学生成绩管理系统效果示意图


附录

教程源码均已上传至网盘,自行领取

  • C# 编程基础:变量、数据类型:https://pan.xunlei.com/s/VOdEJ1k5DnetlpQUO724kvYwA1?pwd=rqfm#
  • C# 编程基础:变量、数据类型:https://pan.quark.cn/s/51e8c289331e?pwd=6gRz
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-11-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 .NET修仙日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第二章:C# 编程基础:变量、数据类型
    • 2.1 变量与常量
      • 什么是变量?
      • 变量的声明和初始化
      • 使用 var 关键字
      • 常量
      • 命名规则和规范
    • 2.2 数据类型
      • 值类型(Value Types)
      • 引用类型(Reference Types)
    • 2.3 运算符
      • 算术运算符
      • 关系运算符
      • 逻辑运算符
      • 赋值运算符
      • 条件运算符(三元运算符)
    • 2.4 控制流
      • 条件语句
      • 循环语句
      • 跳转语句
    • 📝 动手练习
      • 练习1:简单计算器
      • 练习2:猜数字游戏
      • 练习3:成绩等级判断
    • 💡 重点回顾
    • 🎯 本章挑战
      • 综合练习:学生成绩管理系统
    • 附录
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档