编程中的各类语句详解
立即解锁
发布时间: 2025-08-21 00:06:06 阅读量: 3 订阅数: 8 


C#编程基础与实战技巧
### 编程中的各类语句详解
在编程世界里,语句是构建程序逻辑的基石。不同类型的语句有着各自独特的功能和用途,下面将详细介绍几种常见的语句类型。
#### 条件语句
条件语句用于根据不同的条件执行不同的代码块,常见的条件语句有`if`语句和`if...else`语句。
##### `if`语句
`if`语句实现条件执行,其语法如下:
```plaintext
if( TestExpr )
Statement
```
其中,`TestExpr`必须计算为`bool`类型的值。如果`TestExpr`计算结果为`true`,则执行`Statement`;如果为`false`,则跳过`Statement`。
以下是`if`语句的示例代码:
```csharp
// 简单语句情况
if( x <= 10 )
z = x - 1; // 单条语句,无需花括号
// 代码块情况
if( x >= 20 )
{
x = x - 5; // 代码块,需要花括号
y = x + z;
}
int x = 5;
if( x ) // 错误:测试表达式必须是bool类型,而不是int
{
...
}
```
##### `if...else`语句
`if...else`语句实现双向分支,其语法如下:
```plaintext
if( TestExpr )
Statement1
else
Statement2
```
如果`TestExpr`计算结果为`true`,则执行`Statement1`;如果为`false`,则执行`Statement2`。
以下是`if...else`语句的示例代码:
```csharp
if( x <= 10 )
z = x - 1; // 单条语句
else
{ // 多条语句 -- 代码块
x = x - 5;
y = x + z;
}
```
#### 多分支语句
多分支语句用于根据不同的条件值执行不同的代码块,常见的多分支语句是`switch`语句。
##### `switch`语句
`switch`语句实现多路分支,其结构包含零个或多个`switch`部分,每个`switch`部分以一个或多个`switch`标签开始。`switch`标签的形式如下:
```plaintext
case ConstantExpression:
```
`switch`语句的控制流程如下:
1. 在结构顶部计算测试表达式`TestExpr`。
2. 每个`switch`部分必须以`break`语句或其他四个跳转语句之一结束。
3. 如果`TestExpr`的值等于第一个`switch`标签中的常量表达式`ConstExpr1`,则执行该标签后面的语句列表中的语句,直到遇到跳转语句。
4. `default`部分是可选的,但如果包含,则必须以跳转语句结束。
以下是`switch`语句的示例代码:
```csharp
for( int x=1; x<6; x++ )
{
switch( x ) // 计算变量x的值
{
case 2: // 如果x等于2
Console.WriteLine("x is {0} -- In Case 2", x);
break; // 转到switch语句末尾
case 5: // 如果x等于5
Console.WriteLine("x is {0} -- In Case 5", x);
break; // 转到switch语句末尾
default: // 如果x既不是2也不是5
Console.WriteLine("x is {0} -- In Default case", x);
break; // 转到switch语句末尾
}
}
```
该代码的输出结果如下:
```plaintext
x is 1 -- In Default case
x is 2 -- In Case 2
x is 3 -- In Default case
x is 4 -- In Default case
x is 5 -- In Case 5
```
`switch`语句可以有任意数量的`switch`部分,包括没有。虽然`default`部分不是必需的,但通常建议包含它,因为它可以捕获潜在的错误。
`switch`标签中的`case`关键字后面的表达式必须是常量表达式,并且必须在编译时完全可由编译器计算,且必须与测试表达式的类型相同。
与C和C++不同,C#中的每个`switch`部分(包括可选的`default`部分)必须以跳转语句结束,不能从一个`switch`部分执行代码后直接进入下一个部分。不过,可以将多个`switch`标签附加到任何`switch`部分。
以下是一个示例代码:
```csharp
switch( x )
{
case 1: // 可接受
case 2:
case 3:
... // 如果x等于1、2或3,则执行此代码
break;
case 5:
y = x + 1;
case 6: // 不可接受,因为没有break
...
}
```
#### 循环语句
循环语句用于重复执行一段代码,常见的循环语句有`while`循环、`do`循环和`for`循环。
##### `while`循环
`while`循环是一种简单的循环结构,测试表达式在循环顶部执行。其语法如下:
```plaintext
while( TestExpr )
Statement
```
控制流程如下:
1. 首先计算`TestExpr`。
2. 如果`TestExpr`计算结果为`false`,则继续执行`while`循环结束后的语句。
3. 否则,当`TestExpr`计算结果为`true`时,执行`Statement`,然后再次计算`TestExpr`。每次`TestExpr`计算结果为`true`时,都会再次执行`Statement`。当`TestExpr`计算结果为`false`时,循环结束。
以下是`while`循环的示例代码:
```csharp
int x = 3;
while( x > 0 )
{
Console.WriteLine("x: {0}", x);
x--;
}
Console.WriteLine("Out of loop");
```
该代码的输出结果如下:
```plaintext
x: 3
x: 2
x: 1
Out of loop
```
##### `do`循环
`do`循环也是一种简单的循环结构,但测试表达式在循环底部执行。其语法如下:
```plaintext
do
Statement
while( TestExpr ); // do循环结束
```
`do`循环有以下特点:
1. 循环体`Statement`至少会执行一次,即使`TestExpr`最初为`false`。
2. 测试表达式的右括号后面必须有分号。
以下是`do`循环的示例代码:
```csharp
int x = 0;
do
Console.WriteLine("x is {0}", x++);
while (x<3);
```
该代码的输出结果如下:
```plaintext
x is
```
0
0
复制全文
相关推荐










