上QQ阅读APP看书,第一时间看更新
2.8 流程控制语句
编程应用中,有时需要提前跳出循环,或提前进入下一轮循环。C#提供了4个命令用来控制循环结构:
● break语句:立即终止循环,跳到循环体外。
● continue语句:立即终止当次循环,继续执行下次循环。
● goto语句:跳出循环,跳转到指定标记好的语句行上。
● return语句:跳出循环,跳出包含该循环的过程或函数。
■2.8.1 break语句
1 public void break语句() 2 { //跳出循环 3 for (int i = 1; i < 5; i++) 4 { 5 if (i > 3) 6 { break; } 7 else 8 { result += i + "\n"; } 9 } 10 }
上述代码,for循环体内嵌套有if语句,当i自加大于3的时候,跳出for循环,直接跳转到代码中第10行。因此变量result最后的结果是1 2 3。
具有同样功能的VBA代码如下:
1 Public Sub exitfor语句() 2 '跳出循环,类似于C#中的break语句 3 Dim i As Integer 4 For i = 1 To 4 5 If (i > 3) Then 6 Exit For 7 Else 8 result = result & i & vbNewLine 9 End If 10 Next i 11 End Sub
■2.8.2 continue语句
continue语句的作用是越过循环体内continue之后的代码,直接进入下一次循环。
1 public void continue语句() 2 { //越过本次循环 3 for (int i = 1; i < 10; i++) 4 { 5 if (i == 3 || i == 7) 6 { continue; } 7 else 8 { result += i + "\n"; } 9 } 10 }
上述代码,当i循环到3或者7时,什么都不做,直接让i自加继续循环。因此代码中的result最后的结果是:1 2 4 5 6 8 9。
■2.8.3 goto语句
goto语句的作用是跳转到指定的标号。
1 public void TestGoto() 2 { 3 int i; 4 int total = 0; 5 for (i = 1; i <= 10; i++) 6 { 7 if (i > 5) 8 { 9 goto label1; 10 } 11 else 12 total += i; 13 } 14 label1: 15 MessageBox.Show(total.ToString()); 16 }
上述代码,循环变量i从1开始循环,当i不大于5时,把i累加给total,一旦i大于5,跳出for循环,跳转到标号为label1的第14行,显示一个对话框。因此对话框显示的结果为1~5的加和:15。
具有同样功能的VBA代码如下:
1 Sub testGoto() 2 Dim i As Integer 3 Dim total As Integer 4 For i = 1 To 10 5 If i > 5 Then 6 GoTo label1 7 Else 8 total = total + i 9 End If 10 Next i 11 label1: 12 MsgBox total 13 End Sub
■2.8.4 return语句
return语句不只用于循环体内,也可以用在一般代码中。下面的代码,当i等于3时,代码将直接跳转到第11行。因此result的最终结果是:1 2。
1 public void return语句() 2 { //return是跳出过程,break是跳出循环 3 for (int i = 1; i < 10; i++) 4 { 5 if (i == 3 || i == 7) 6 { return; } 7 else 8 { result += i + "\n"; } 9 } 10 result += "循环体外的语句;\n"; 11 }
具有同样功能的VBA代码如下:
1 Public Sub exitsub语句() 2 '类似于C#中的return语句 3 Dim i As Integer 4 For i = 1 To 10 5 If (i = 3 Or i = 7) Then 6 Exit Sub 7 Else 8 result = result & i & vbNewLine 9 End If 10 Next i 11 result = result & "循环体外的语句" 12 End Sub