ZetCode

C# 语句

最后修改于 2023 年 7 月 5 日

C# 语句教程定义了语句,并展示了如何在 C# 语言中使用它们。

一个计算机程序主要由两个构建块组成:语句和表达式。 表达式 是指求值为一个值的代码单元。 语句 是指计算机程序执行一个动作的指令。

一般来说,语句用于执行常见的任务,例如声明变量、赋值、调用方法、循环遍历集合以及执行条件判断。

一个语句可以是单行代码,以分号结尾;也可以是包含在 {} 括号内的多个语句。

C# 识别以下类型的语句

注意: 这种分类比较宽松;其他语言可能会使用不同的类别。

C# 声明和方法调用语句

在第一个例子中,我们有声明和方法调用语句。

Program.cs
var name = "John Doe";
var age = 34;

Console.WriteLine($"{name} is {age} years old");
Console.WriteLine(Environment.Version);

我们定义了两个变量,并根据它们创建了一条消息。

var name = "John Doe";
var age = 34;

这两行是声明语句。

Console.WriteLine($"{name} is {age} years old");
Console.WriteLine(Environment.Version);

这些是方法调用语句。

C# 迭代语句

迭代语句用于重复执行动作或遍历集合。为此,我们使用 do、for、foreach 和 while 关键字。

Program.cs
var words = new List<string> { "falcon", "vulcan", "owl", "stone", "bread" };

foreach (var word in words) 
{
    Console.WriteLine(word);
}

Console.WriteLine("--------------------------");

for (int i = 0; i < words.Count; i++)
{
    Console.WriteLine(words[i]);
}

Console.WriteLine("--------------------------");

int j = 5;

while (j > 0)
{
    Console.WriteLine("falcon");
    j--;
} 

在这个例子中,我们有三个迭代语句。我们使用 foreachfor 语句遍历单词列表,并使用 while 语句输出一个单词五次。

C# 表达式语句

下面的例子使用了表达式语句。

Program.cs
var baskets = 12;
var apples_per_basket = 30;

var total = baskets * apples_per_basket;

Console.WriteLine($"There are {total} apples");

我们计算所有篮子中的苹果总数。

var total = baskets * apples_per_basket;

我们有一个表达式语句。这也可以称为赋值语句或赋值表达式语句。

C# 选择语句

选择语句,或条件语句,用于根据一个或多个指定的条件来处理代码的特定分支。选择语句使用 ifswitch 语句执行。

Program.cs
var r = new Random();
int n = r.Next(-5, 5);

Console.WriteLine(n);

if (n < 0)
{
    Console.WriteLine("The n variable is negative");
} else if (n == 0)
{
    Console.WriteLine("The n variable is zero");

} else
{
    Console.WriteLine("The n variable is positive");
}

在这个例子中,只执行一个代码块。这由 if 语句根据返回的随机值来控制。

C# 空语句

当没有语句时,使用空语句。

Program.cs
int[] vals = new int[10];
int n = vals.Length;

for (int i = 0; i < n; vals[i++] = 0)
;

Console.WriteLine(string.Join(", ", vals));

分号用于表示空语句。

C# 跳转语句

跳转语句将控制转移到代码的另一个部分。它们使用 break、continue、goto、return 和 yield 关键字创建。

Program.cs
var random = new Random();

while (true)
{
    int num = random.Next(1, 30);
    Console.Write("{0} ", num);

    if (num == 22)
    {
        break;
    }
}

Console.Write('\n');

该示例展示了 break 语句。我们使用 break 跳出无限 while 循环。

C# 异常处理语句

异常处理语句用于处理代码中的异常。为此,我们使用 try/catch/finally 关键字。

Program.cs
int x = 100;
int y = 0;
int z;

try
{
    z = x / y;
}
catch (ArithmeticException e)
{
    Console.WriteLine("An exception occurred");
    Console.WriteLine(e.Message);
}

在这个程序中,我们处理一个 ArithmeticException

C# checked 和 unchecked 语句

checked 和 unchecked 语句用于控制整数类型算术运算和转换的溢出检查上下文。

算术溢出是一种情况,当计算产生的结果大于给定寄存器或存储位置可以存储或表示的值时,就会发生这种情况。

Program.cs
checked
{
    byte a = 254;

    Console.WriteLine(a);
    a++;

    Console.WriteLine(a);
    a++;

    Console.WriteLine(a);
    a++;

    Console.WriteLine(a);
}

使用 checked 关键字,我们可以在发生溢出时强制引发异常。

C# using 语句

using 语句获取一个或多个资源,执行一条语句,然后释放资源。

Program.cs
using System.Text;

var path = "data.txt";

using var fs = new FileStream(path, FileMode.Open, FileAccess.Read);
using var sr = new StreamReader(fs, Encoding.UTF8);

string content = sr.ReadToEnd();

Console.WriteLine(content);

在这个例子中,我们读取一个文件的内容。使用 using 语句,我们可以自动处理与文件相关的资源的释放。

C# goto 语句

使用 goto 语句,可以将代码执行转移到指定的标签。

Program.cs
Console.WriteLine("message 1");

goto next;

Console.WriteLine("message 2");

next:
    Console.WriteLine("message 3");

在这个例子中,我们跳过了第二条消息。这会创建一个无法访问的语句警告。

来源

C# 语句 - 编程指南

在本文中,我们使用了 C# 中的语句。

作者

我叫 Jan Bodnar,我是一位热情的程序员,拥有丰富的编程经验。我从 2007 年开始撰写编程文章。到目前为止,我已经撰写了 1,400 多篇文章和 8 本电子书。我拥有超过十年的编程教学经验。

列出所有 C# 教程