Source: https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/control-flow/ Documentation version: v5.3.2 # 控制流语句 控制流语句用于控制[过程](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/procedures/)中的语句执行顺序。 支持的控制流语句包括: - `WHILE`:根据指定的条件循环执行一组语句,直到条件不再满足。 - `IF`:根据指定的条件执行一组语句。 - `BREAK`:立即退出循环,通常在 WHILE 语句或循环内的 IF 语句中使用。 - `CONTINUE`:跳过当前迭代中剩余的语句,继续下一次迭代。通常在 WHILE 语句或循环内的 IF 语句中使用。 ## 语法 语法图源码 while_statement if_statement break_statement continue_statement ```` while_statement ::= 'WHILE' value_expression 'THEN' '{' procedure_body '}' if_statement ::= 'IF' value_expression 'THEN' '{' procedure_body '}' ( 'ELSEIF' value_expression 'THEN' '{' procedure_body '}' )* ( 'ELSE' '{' procedure_body '}' )? break_statement ::= 'BREAK' continue_statement ::= 'CONTINUE' ```` ## 参数 ### `value_expression` 计算结果为布尔值的值表达式。更多信息,请参见[布尔类型](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/data-types/boolean-type/)和[值表达式](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/fe/#_6)。 ### `procedure_body` 待执行的一组语句。更多信息,请参见[过程体](https://dev-docs.yueshu.com.cn/v5.3.2/database-gql-reference/procedures/#_3)。 ## 示例 ### WHILE ```` ''' VALUE i INT = 0 WHILE i < 5 THEN { SET i = i + 1 } RETURN i ''' ```` 返回: ```` +---+ | i | +---+ | 5 | +---+ ```` ### IF #### IF-ELSE ```` ''' VALUE i INT = 5 IF i < 5 THEN { SET i = i + 1 } ELSE { SET i = i - 1 } RETURN i ''' ```` 返回: ```` +---+ | i | +---+ | 4 | +---+ ```` #### IF-ELSEIF-ELSE ```` ''' VALUE i INT = 4 IF i < 3 THEN { SET i = i + 1 } ELSEIF i < 5 THEN { SET i = i + 2 } ELSE { SET i = i - 1 } RETURN i ''' ```` 返回: ```` +---+ | i | +---+ | 6 | +---+ ```` ### BREAK ```` ''' VALUE i INT = 0 WHILE i < 5 THEN { IF i = 3 THEN { BREAK } SET i = i + 1 } RETURN i ''' ```` 返回: ```` +---+ | i | +---+ | 3 | +---+ ```` ### CONTINUE ```` ''' VALUE i INT = 0 WHILE i < 5 THEN { IF i < 3 THEN { SET i = i + 1 CONTINUE } ELSE { SET i = i + 1 } } RETURN i ''' ```` 返回: ```` +---+ | i | +---+ | 5 | +---+ ````