一、条件语句
条件语句是编程中最常见的逻辑判断工具。它允许你的程序根据某个条件是否为真,来决定执行哪一段代码。
1. if 语句
if语句是最基础的条件判断。它的逻辑很简单:“如果(if)这个条件是真的,就执行这里的代码。”
语法结构:
if (condition)
{
// 当 condition 为 true 时,执行这里的代码
}
示例
假设一个游戏道具需要100个金币。我们可以用if来判断玩家是否有足够的金币。
int playerGold = 120;
int itemCost = 100;
if (playerGold >= itemCost)
{
Console.WriteLine("金币足够,购买成功!");
playerGold -= itemCost; // 扣除金币
Console.WriteLine("剩余金币: " + playerGold);
}
在这个例子中,因为playerGold >= itemCost (120 >= 100) 的结果为true,所以{}中的代码会被执行。
2. if-else 语句
但如果玩家金币不够呢?if语句只管条件为真的情况。这时,我们需要else来处理条件为假的情况。
语法结构:
if (condition)
{
// 当 condition 为 true 时执行
}
else
{
// 当 condition 为 false 时执行
}
示例:
int playerGold = 70;
int itemCost = 100;
if (playerGold >= itemCost)
{
Console.WriteLine("购买成功!");
}
else
{
Console.WriteLine("金币不足,无法购买!");
}
// 输出: 金币不足,无法购买!
3. if-else if-else 语句
如果存在多种互斥的条件呢?比如根据玩家的等级给予不同的称号。这时就需要else if来构建一个多重选择的逻辑链。
示例:
int score = 85;
if (score >= 90)
{
Console.WriteLine("等级:优秀");
}
else if (score >= 75)
{
Console.WriteLine("等级:良好");
}
else if (score >= 60)
{
Console.WriteLine("等级:及格");
}
else
{
Console.WriteLine("等级:不及格");
}
// 输出: 等级:良好
程序会从上到下依次检查条件,一旦找到一个为true的,就会执行对应的代码块,然后跳过整个if-else if链条的其余部分。
4. switch 语句
当你的if-else if链条是基于同一个变量的多个固定值时,switch语句提供了一种更清晰、更优雅的写法。
语法结构:
switch (variable)
{
case value1:
// 当 variable 等于 value1 时执行
break; // break 关键字是必须的,它会跳出 switch 结构
case value2:
// 当 variable 等于 value2 时执行
break;
default:
// 如果以上 case 都不匹配,则执行这里的代码
break;
}
示例:
int dayOfWeek = 3;
string dayName;
switch (dayOfWeek)
{
case 1:
dayName = "星期一";
break;
case 2:
dayName = "星期二";
break;
case 3:
dayName = "星期三";
break;
// ... 其他 case
default:
dayName = "无效的日期";
break;
}
Console.WriteLine(dayName); // 输出: 星期三
二、循环语句
循环语句允许你一遍又一遍地执行同一段代码,直到满足某个退出条件。
1. for 循环
for循环是处理固定次数重复任务的最佳选择。它将初始化、循环条件和迭代器这三个部分都整合在了一行代码里,非常紧凑。
语法结构:
for (initializer; condition; iterator)
{
// 循环体内的代码
}
initializer: 循环开始前执行一次(通常用于声明和初始化循环变量)。condition: 每次循环开始前检查,如果为true,则执行循环体。iterator: 每次循环结束后执行(通常用于递增或递减循环变量)。
示例:
for (int i = 1; i <= 5; i++)
{
Console.WriteLine("发射第 " + i + " 发子弹!");
}
2. while 循环
while循环非常灵活,只要条件为true,它就会一直循环下去。
语法结构:
while (condition)
{
// 只要 condition 为 true,就一直执行
}
警告: 使用while循环时,一定要确保循环体内有能够最终让condition变为false的逻辑,否则就会陷入无限循环!
示例: 假设玩家中毒了,每秒恢复5点生命,直到生命值达到100。
int playerHealth = 70;
int maxHealth = 100;
while (playerHealth < maxHealth)
{
playerHealth += 5;
if (playerHealth > maxHealth)
{
playerHealth = maxHealth; // 防止超出最大生命值
}
Console.WriteLine("生命值恢复中... 当前生命: " + playerHealth);
}
Console.WriteLine("生命值已完全恢复!");
3. do-while 循环
do-while循环和while非常相似,唯一的区别是:do-while先执行一次循环体,再去判断条件。这就保证了循环体内的代码至少会被执行一次。
语法结构:
do
{
// 这里的代码至少会执行一次
} while (condition);
示例: 无论如何,我们都希望至少向玩家显示一次菜单。
int choice;
do
{
Console.WriteLine("===== 游戏菜单 =====");
Console.WriteLine("1. 开始游戏");
Console.WriteLine("2. 退出");
Console.Write("请输入你的选择: ");
choice = Convert.ToInt32(Console.ReadLine());
} while (choice != 1 && choice != 2);
Console.WriteLine("你已做出选择!");
三、跳转语句
有时我们需要更精细地控制循环的流程,比如提前退出循环,或者跳过某次循环。
break:立即终止并跳出整个循环(或switch语句)。continue:跳过当前这一次循环的剩余代码,直接开始下一次循环。return:立即退出当前所在的整个方法(函数)。
示例:
string[] inventory = { "剑", "盾牌", "生命药水", "钥匙", "地图" };
for (int i = 0; i < inventory.Length; i++)
{
if (inventory[i] == "生命药水")
{
Console.WriteLine("这是恢复道具,跳过。");
continue; // 跳过本次循环,继续检查下一个物品
}
if (inventory[i] == "钥匙")
{
Console.WriteLine("找到钥匙了!停止搜索。");
break; // 找到目标,跳出整个 for 循环
}
Console.WriteLine("检查物品: " + inventory[i]);
}
结语
点个赞,关注我获取更多实用 C# 技术干货!如果觉得有用,记得收藏本文!