C#循环入门指南:从0到1掌握循环逻辑
一、for循环:已知循环次数,首选它
for循环是最常用、最规范的循环,适合已知循环次数的场景(比如打印10遍文字、计算1到100的和)。它的结构很固定,就像一个“固定流程的重复机器”,一步都不会乱。
1. for循环的基本结构
先看语法格式,括号里有3个部分,用分号分隔,缺一不可(但可以省略内容,后面会说):
for (初始化循环变量; 循环条件; 更新循环变量)
{
// 要重复执行的代码(循环体)
}
2. 案例(打印1到10)
需求:打印1到10的数字,每打印一个换一行。代码如下
using System;
namespace LoopDemo
{
class Program
{
static void Main(string[] args)
{
// for循环打印1到10
for (int i = 1; i <= 10; i++)
{
Console.WriteLine(i); // 循环体:打印当前的i值
}
Console.ReadKey(); // 停留控制台,方便查看结果
}
}
}
运行结果:会依次打印1、2、3...10,完美实现重复执行。这里要注意一个新手易错点:循环变量i是在for循环的初始化部分声明的,只能在循环体内使用,出了循环就会报错(这是C#的变量作用域规则)。
二、while循环:未知循环次数,先判断后执行
while循环适合未知循环次数的场景(比如让用户输入密码,直到输入正确为止)。它的逻辑很简单:先判断条件,条件成立就执行循环体,不成立就直接退出,相当于“先检查,再干活”。
while (循环条件)
{
// 要重复执行的代码(循环体)
// 注意:循环体内要更新条件中的变量,避免无限循环
}
和for循环相比,while循环没有专门的初始化和更新部分,这两部分需要我们自己写在合适的位置——初始化变量写在while循环之前,更新变量写在循环体内。
案例(密码验证)
需求:让用户输入密码,直到输入“123456”为止,输入错误就提示“密码错误,请重新输入”。
using System;
namespace LoopDemo
{
class Program
{
static void Main(string[] args)
{
// 初始化变量:存储用户输入的密码
string password = "";
// 循环条件:只要密码不等于"123456",就继续循环
while (password != "123456")
{
Console.Write("请输入密码:");
password = Console.ReadLine(); // 接收用户输入,更新变量
if (password != "123456")
{
Console.WriteLine("密码错误,请重新输入!");
}
}
Console.WriteLine("密码正确,欢迎登录!");
Console.ReadKey();
}
}
}
三、do-while循环:未知循环次数,先执行后判断
do-while循环和while循环很像,都适合未知循环次数的场景,但唯一的区别是:do-while循环会先执行一次循环体,再判断条件——也就是说,不管条件是否成立,循环体至少会执行一次。
do
{
// 要重复执行的代码(循环体)
// 同样需要更新循环变量
} while (循环条件);
注意:do-while循环的末尾有一个分号,千万不要漏写。
案例(强制输入正确性别)
需求:让用户输入性别(男/女),如果输入错误,就重新输入,直到输入正确为止。这里要求“必须先让用户输入一次,再判断是否正确”,所以用do-while循环最合适。
using System;
namespace LoopDemo
{
class Program
{
static void Main(string[] args)
{
string gender = "";
do
{
Console.Write("请输入性别(男/女):");
gender = Console.ReadLine();
if (gender != "男" && gender != "女")
{
Console.WriteLine("输入错误,请输入“男”或“女”!");
}
} while (gender != "男" && gender != "女"); // 循环条件:输入错误就继续循环
Console.WriteLine("输入正确,你的性别是:" + gender);
Console.ReadKey();
}
}
}
运行这个程序,你会发现:即使一开始输入错误(比如输入“123”),循环体也会先执行一次(让用户输入),再判断条件——这就是do-while和while的核心区别。
四、3种循环的核心区别(新手必记)
学到这里,很多新手会分不清什么时候用哪种循环,这里用一张简单的表格总结,记住这3点,再也不纠结:
|
循环类型 |
核心特点 |
适用场景 |
|---|---|---|
|
for循环 |
已知循环次数,结构固定,先判断后执行 |
打印固定次数、遍历数组/集合、计算固定次数的累加/累乘 |
|
while循环 |
未知循环次数,先判断后执行,可能一次都不执行 |
密码验证、用户输入判断(不需要强制执行一次) |
|
do-while循环 |
未知循环次数,先执行后判断,至少执行一次 |
强制用户输入、必须执行一次的逻辑(比如初始化操作) |
五、必看的循环通用技巧
1. 如何跳出循环?break和continue的区别
在循环中,我们经常需要“提前退出循环”或“跳过当前循环”,这时候就需要用到break和continue,两者的区别一定要分清:
-
break:直接跳出整个循环,不管后面还有多少次循环,都不再执行;
-
continue:跳过当前这次循环,直接进入下一次循环的判断,不会跳出整个循环。
简单案例:打印1到10,遇到5就跳过,遇到8就直接退出循环:
for (int i = 1; i <= 10; i++)
{
if (i == 5)
{
continue; // 跳过5,直接进入下一次循环
}
if (i == 8)
{
break; // 遇到8,直接跳出整个循环
}
Console.WriteLine(i);
}
2. 避免无限循环
无限循环是新手最容易犯的错误,程序一旦进入无限循环,就会卡死,只能强制关闭。避免无限循环的核心就是:确保循环条件最终会变为false,也就是循环体内一定要有更新循环变量的代码(比如i++、password = Console.ReadLine())。
// 错误1:for循环漏写更新变量
for (int i = 1; i <= 10; )
{
Console.WriteLine(i); // 没有i++,i一直是1,循环条件永远为true
}
// 错误2:while循环没有更新变量
int j = 1;
while (j <= 10)
{
Console.WriteLine(j); // 没有j++,无限循环
}
更多推荐


所有评论(0)