变量是程序中存储数据的基本单元,可以理解为命名的内存空间,用于在程序运行期间存储和操作数据。
基本语法:
// 变量声明语法:数据类型 变量名;
int age; // 声明一个整数变量
string name; // 声明一个字符串变量
// 变量初始化:声明的同时赋值
int score = 100; // 声明并初始化
double price = 19.99; // 声明双精度浮点数
bool isActive = true; // 声明布尔值
char grade = 'A'; // 声明字符
C# 支持类型推断,可以使用 var 关键字让编译器自动推断变量类型:
var count = 10; // 编译器推断为 int
var message = "Hello"; // 编译器推断为 string
var salary = 2500.50; // 编译器推断为 double
注意: 使用
var时必须立即初始化,这样编译器才能推断类型。
常量是在程序运行期间值不会改变的变量:
const double PI = 3.14159;
const int MAX_USERS = 100;
const string APP_NAME = "我的应用";
常量特点:
必须遵守的规则:
int, class 等)命名规范(约定俗成):
firstName, totalCountMAX_SIZE, DEFAULT_TIMEOUT
命名流程
C# 数据类型分为两大类:值类型和引用类型。
值类型变量直接包含数据,存储在栈内存中。
基本数值类型:
// 整数类型
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):
// 预定义的结构体
DateTime today = DateTime.Now;
DateOnly birthDate = new DateOnly(1990, 5, 15);
TimeOnly currentTime = new TimeOnly(14, 30, 0);
引用类型变量存储的是数据的引用(内存地址),数据本身存储在堆内存中。
字符串(string):
string greeting = "Hello, World!";
string name = "张三";
string emptyString = ""; // 空字符串
string nullString = null; // 空引用
// 字符串操作
string firstName = "John";
string lastName = "Doe";
string fullName = firstName + " " + lastName; // 字符串拼接
数组(Array):
// 一维数组
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#数据类型图
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 值(true 或 false):
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,小于等于
用于布尔表达式:
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
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
int score = 85;
string result = (score >= 60) ? "及格" : "不及格";
// 如果score >= 60为true,返回"及格",否则返回"不及格"
if-else 语句:
int temperature = 25;
if (temperature > 30)
{
Console.WriteLine("天气很热");
}
else if (temperature > 20)
{
Console.WriteLine("天气舒适");
}
else
{
Console.WriteLine("天气较冷");
}

温度判断流程图
switch 语句:
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 循环:
// 打印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 循环:
// 当条件为真时执行循环
int count = 1;
while (count <= 5)
{
Console.WriteLine(count);
count++; // 不要忘记更新条件变量,否则会无限循环
}
do-while 循环:
// 至少执行一次,然后检查条件
int number;
do
{
Console.WriteLine("请输入一个正数:");
number = Convert.ToInt32(Console.ReadLine());
} while (number <= 0);
foreach 循环:
// 遍历数组或集合中的每个元素
string[] fruits = { "苹果", "香蕉", "橙子", "葡萄" };
foreach (string fruit in fruits)
{
Console.WriteLine(fruit);
}
// 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);
}

简单计算器实现流程
// 编写一个程序,接受用户输入的两个数字和运算符,然后计算结果
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}");

简单计算器效果截图

猜数字游戏实现流程
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}次尝试。");
}

效果截图
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}");

成绩等级判断效果截图
if-else 进行条件判断,使用 for、while 进行循环switch 语句适合多分支选择,foreach 适合遍历集合编写一个程序,能够:
提示: 使用数组存储成绩,使用循环进行输入和计算。

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

学生成绩管理系统效果示意图
教程源码均已上传至网盘,自行领取