我被要求对一些C#代码进行维护工作,据我所知,这些代码最初是从Visual Basic 6转换而来的.(我之所以提到这只是因为我不知道VB6,所以我不知道它是否会更多用这种语言感觉......
它有一个用于循环,其利用用于解析专有的脚本语言,一些文本开关内部的循环...
for ( t = 0; t < upperBound(tokens); t++)
{
String mystring = tokens[t];
switch (mystring)
{
case "GOTO":
if (firstGoto == -1)
{
firstGoto = t;
}
else
{
// compute number of tokens in GOTO
pointLength = t - firstGoto - 1;
break; // exit for
}
break;
case "ACTUATE"
. . .
Run Code Online (Sandbox Code Playgroud)
注意评论
Run Code Online (Sandbox Code Playgroud)// exit for
程序员预计突破将退出的循环,但我觉得它只会退出开关,因为文档声明决裂说
break语句终止它出现的最近的封闭循环或switch语句.控制权将传递给终止语句后面的语句(如果有).
所以我是正确的,这只会退出交换机,但仍然在for,如果是这样,那么正确的方法是什么原始程序员的意图呢?
是的,break会突破最近的循环或切换.最简单的方法是使用goto.(不,转到不邪恶)
for {
switch(...) {
....
goto MyLabel;
}
}
MyLabel:
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
276 次 |
| 最近记录: |