continue
语句的作用是跳过循环体中后面尚未执行的语句,接着进行下一次是否执行循环的判断。比如下面的例子:
while(
表达式
1)
{
…
if(
表达式
2)
continue;
…
}
下面就来仔细地分析
LCC
里处理
continue
语句的源程序:
#001 case CONTINUE:
#002 walk(NULL, 0, 0);
#003 definept(NULL);
#004
#005 if (loop)
#006 branch(loop + 1);
#007 else
#008 error("illegal continue statement/n");
#009
#010 t = gettok();
#011 expect(';');
#012 break;
第
2
行是复位所有分配的内存。
第
3
行是定义执行点。
第
5
行是判断是否在循环语句中,如果不在,就表示使用这个语句出错,这是在第
8
行里处理。
第
6
行是处理跳转到下一个循环,由于在以前介绍的三个循环里都是在第
2
个标号里运行条件判断表达式的,所以调用
loop + 1
的标号。
第
10
行是获取下一个记号。
第
11
行是判断这个语句是否以分号结束。