本帖最后由 lu_zhao_long 于 2012-4-14 23:35 编辑
芙蓉妮 发表于 2012-4-14 21:13 
4,6,8楼搞不清结构性语言的特点,结构性语言中是不能出现goto这样的语句的
按照你们的做法,不仅能实现c ...
我看了一下 VC 中关于 break 和 continue 两个语句的解释和例子,我个人认为作用与 GOTO 语句类似(在汇编语句中更是条件跳转语句了)。在 VBA 中,只要与 IF ……END IF 块组合是非常容易实现的,所以根本用不着这两个语句。
break语句 break语句用于终止包含它的do、for、switch或while语句的执行。控制传递给该终止语句的后续语句。
语法
跳转语句:
break;
break语句频繁地使用在一个switch语句中以终止一个特殊情况的处理。缺少包含它的迭代语句或switch语句时产生一个错误。
在嵌套的语句中,break语句仅终止直接包含它的do、for、switch或while语句。
你可以使用一个return或goto语句把控制转向该嵌套结构的外面的地方。
如下例子说明了break语句:
for (i=0,i<LENGTH;i++) /*当执行 break语句时控制返回到这里*/
{
for(j=0,j<WIDTH;j++)
{
if (lins[j]==′ \0′)
{
lengths=j;
break;
}
}
}
这个例子处理一个存储在lines中的可变长度字符串的数组。break语句
导致在每个字符串中找到结尾的空格字符(′\0′)后退出里层的for循环并把该位置存储在lengths中。
在break导致从里层循环退出时变量j不增大。然后控制返回到外层for循环。i增大且重复这个过程直到i大于或等于LENGTH。
continue语句 continue语句把控制传递给包含该语句的do、for或while语句的下一次迭代,绕过do、for或while语句体的任何余下语句。 continue的一般使用是从一个深的嵌套循环中返回到一个循环的开头。
语法
跳转语句:
continue;
确定一个do、for或while语句的下一次迭代如下:
* 在一个do或一个while语句中,通过重新do或while语句中表达式的求值来开始下一次迭代。
* 在一个for语句中的continue语句导致for语句的第一个表达式被求值,然后编译器重新条件表达式的求值,根据其结果,终止或迭代该语句体。有关for语句和它的非终结符的更多信息参见本章后面的“for语句”。
如下是continue语句的例子:
while(i-->0)
{
x=f(i);
if (x==1)
continue;
y+=x*x;
}
在这个例子中,当i大于0时执行该语句体。首先把f(i)赋给x,然后如果x等于1,则执行continue语句,忽略语句体中其余的语句,执行回到该循环的顶部,求值该循环的测试。
|