C#
本教程介绍如何编写 C# 代码来检查变量并基于这些变量更改执行路径。 编写 C# 代码并查看编译和运行它的结果。 本教程包含一系列课程,用于探索 C# 中的分支和循环构造。 这些课程介绍了 C# 语言的基础知识。
小窍门
当代码片段块包含“运行”按钮时,该按钮将打开交互式窗口,或替换交互式窗口中的现有代码。 当代码片段不包含“运行”按钮时,可以复制代码并将其添加到当前交互式窗口。
在交互式窗口中运行以下代码。 选择 “运行”
int a = 5;
int b = 6;
if (a + b > 10)
Console.WriteLine("The answer is greater than 10.");
修改其声明 b
,使总和小于 10:
int b = 3;
再次选择 “运行 ”按钮。 由于答案小于 10,因此不会打印任何内容。 您正在测试的条件为假。 没有要执行的任何代码,因为你只为 if
语句编写了一个可能的分支:true 分支。
小窍门
在探索 C#(或任何编程语言)的过程中,可能会在编写代码时犯错。 编译器会找到这些错误并将其报告给你。 当输出包含错误消息时,请仔细查看示例代码,以及交互式窗口中的代码以查看要修复的内容。 该练习有助于学习 C# 代码的结构。
第一个示例展示了if
类型和布尔类型的强大功能。 布尔值是一个变量,可以是两个值之一:true
或false
。 C# 定义布尔变量的特殊类型 bool
。 该 if
语句检查 bool
的值。 如果值为值 true
,则执行后面的 if
语句。 否则,跳过这些语句。
基于这些条件检查条件和执行语句的过程非常强大。 让我们来了解一下。
使 if 和 else 协同工作
若要在 true 和 false 分支中执行不同的代码,请创建一个 else
在条件为 false 时执行的分支。 请尝试以下代码:
int a = 5;
int b = 3;
if (a + b > 10)
Console.WriteLine("The answer is greater than 10");
else
Console.WriteLine("The answer is not greater than 10");
关键字后面的 else
语句仅在测试 false
条件时执行。 结合 if
和 else
的布尔条件可提供所有所需的功能。
重要
if
和 else
语句下的缩进是为了方便读者阅读。 C# 语言不会将缩进或空格视为重要。 根据条件,执行跟在 if
或 else
关键字之后的语句。 本教程中的所有示例都遵循了常见做法,根据语句的控制流缩进代码行。
由于缩进并不重要,因此你需要使用 {
并 }
指示何时需要多个语句成为有条件执行的块的一部分。 C# 程序员通常在所有 if
和 else
子句上使用这些大括号。 以下示例与所创建的示例相同。 试一试。
int a = 5;
int b = 3;
if (a + b > 10)
{
Console.WriteLine("The answer is greater than 10");
}
else
{
Console.WriteLine("The answer is not greater than 10");
}
小窍门
在本教程的其余部分,代码示例均包括使用大括号,以便遵循公认的编程规范。
可以测试更复杂的条件:
int a = 5;
int b = 3;
int c = 4;
if ((a + b + c > 10) && (a == b))
{
Console.WriteLine("The answer is greater than 10");
Console.WriteLine("And the first number is equal to the second");
}
else
{
Console.WriteLine("The answer is not greater than 10");
Console.WriteLine("Or the first number is not equal to the second");
}
符号 ==
测试 是否相等。 使用 ==
将相等测试与赋值测试区分开来,如在 a = 5
中所见。
&&
代表 "and"。 这意味着必须同时满足这两个条件,才能在 true 分支中执行该语句。 这些示例还显示,在每个条件分支中可以有多个语句,前提是将语句括在{
一起。}
||
也可以用来表示“或”
if ((a + b + c > 10) || (a == b))
修改a
、b
和c
的值,并在&&
和||
之间切换以进行探索。 你对&&
和||
操作符的工作原理有了更深入的了解。
使用循环重复操作
创建大型程序的另一个重要概念是 循环。 使用循环重复希望多次执行的语句。 在交互式窗口中试用此代码:
int counter = 0;
while (counter < 10)
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
}
该 while
语句检查条件并执行以下 while
语句。 它重复检查条件并执行这些语句,直到条件为假。
在这个示例中有一个新的运算符。 ++
变量counter
的后面是递增运算符。 它将 1 添加到计数器的值,并将该值存储在计数器变量中。
重要
在执行代码时,请确保 while
循环条件会切换到 false。 否则,将创建一个 无限循环 ,程序永不结束。 让我们不要演示,因为运行您代码的引擎会超时,您将看不到程序的输出。
循环会在 while
前先测试条件,然后再执行后续 while
代码。 ... do
while
循环首先执行代码,然后检查条件。 它的外观如下所示:
int counter = 0;
do
{
Console.WriteLine($"Hello World! The counter is {counter}");
counter++;
} while (counter < 10);
此 do
循环和早期 while
循环的工作方式相同。
接下来,将继续介绍最后一个循环语句。
使用 for 循环
在 C# 代码中看到的另一个常见循环语句是 for
循环。 在交互式窗口中试用此代码:
for (int counter = 0; counter < 10; counter++)
{
Console.WriteLine($"Hello World! The counter is {counter}");
}
前面的for
循环执行与您已使用的while
循环和do
循环相同的工作。 该 for
语句包含三个部分,用于控制其工作原理:
- 第一部分是 初始值设定项:
int counter = 0;
声明为counter
循环变量,并将其初始值设置为0
。 - 中间部分是 条件:
counter < 10
声明只要计数器的值小于 10,此for
循环将继续执行。 - 最后一部分是 for迭代器:
counter++
指定在执行for
语句后的块之后如何修改循环变量。 在此示例中,它指定counter
在代码块每次执行时递增 1。
亲自尝试这些条件。 请尝试以下每一项更改:
- 更改初始化器以从其他值开始。
- 更改条件以在不同的值处终止。
完成后,让我们自行编写一些代码,以使用所学内容。
本教程中有一种循环语句未被介绍:foreach
语句。 该 foreach
语句对一系列项中的每个项重复其语句。 它最常用于 集合。 下一教程介绍了相关内容。
已创建嵌套循环
while
一个、do
或for
循环可以嵌套在另一个循环内,以使用外部循环中每个项与内部循环中的每个项的组合来创建矩阵。 让我们来生成一组字母数字对来表示行和列。
一个 for
循环可以生成行:
for (int row = 1; row < 11; row++)
{
Console.WriteLine($"The row is {row}");
}
另一个循环可以生成列:
for (char column = 'a'; column < 'k'; column++)
{
Console.WriteLine($"The column is {column}");
}
可以在一个循环中嵌套另一个循环以形成循环对:
for (int row = 1; row < 11; row++)
{
for (char column = 'a'; column < 'k'; column++)
{
Console.WriteLine($"The cell is ({row}, {column})");
}
}
你可以看到,每当内部循环完整运行一次时,外部循环递增一次。 反转行和列嵌套,自行查看变化。
结合使用分支和循环
现在,你已看到 if
C# 语言中的语句和循环构造,看看是否可以编写 C# 代码来查找 1 到 20 个整数的总和,这些整数被 3 分割。 下面是一些提示:
- 运算符
%
提供除法运算的其余部分。 - 该
if
语句提供条件来查看数字是否应是总和的一部分。 - 该
for
循环可帮助对所有数字 1 到 20 重复一系列步骤。
自己尝试。 然后检查你的表现如何。 作为提示,你应该得到 63 作为答案。
你想到这样的东西吗?
int sum = 0;
for (int number = 1; number < 21; number++)
{
if (number % 3 == 0)
{
sum = sum + number;
}
}
Console.WriteLine($"The sum is {sum}");
已完成“分支和循环”交互式教程。 可以选择 列表集合 链接以开始下一个交互式教程,也可以访问 .NET 站点以下载 .NET SDK、在计算机上创建项目以及继续编码。 “后续步骤”部分将引导您返回这些教程。
若要详细了解这些概念,请参阅下列文章: