====== Covariant Script 语句 ====== ----- \\ ===== 5.1 定义 ===== [[wiki:reference:grammar:core_concepts:main_page#2.1 语句(statement)|核心概念:2.1语句]] ----- \\ ===== 5.2 表达式 ===== 单独由[[wiki:reference:grammar:expression:main_page|表达式]]可以组成一条语句 ----- \\ ===== 5.3 选择语句 ===== ==== if 语句 ==== if 逻辑表达式 语句块 end ''逻辑表达式''的值为真则执行''语句块'' \\ if 逻辑表达式 语句块1 else 语句块2 end 若''逻辑表达式''的值为真,执行''语句块1'',否则执行''语句块2'' \\ ==== switch 语句 ==== switch 选择型表达式 switch 表达式 case 常量标签 语句块 end default 语句块 end end 执行与表达式 等值的 常量标签中对应的''case''中语句块后跳出 当无匹配的常量标签时会执行''default''中的语句块,如''default''未找到则会直接跳出,不执行任何语句
注意:常量标签的类型必须支持生成哈希值
----- \\ ===== 5.4 循环语句 ===== ==== while 循环 ==== while 逻辑表达式 语句块 end 当''逻辑表达式''的值为真时循环执行''语句块'' \\ ==== loop 循环 ==== loop 语句块 until 逻辑表达式 循环执行''语句块''直到''逻辑表达式''的值为真时跳出 \\ loop 语句块 end 循环执行''语句块''直到用户以某种方法手动跳出 \\ ==== for 循环 ==== for 变量名 = 表达式, 逻辑表达式, 后处理表达式 语句块 end 定义一个变量,当''逻辑表达式''为真时循环执行''语句块'',在每个循环的最后执行''后处理表达式'' \\ for 变量名 = 表达式, 逻辑表达式, 后处理表达式 do 表达式 定义一个变量,当''逻辑表达式''为真时循环执行''表达式'',在每个循环的最后执行''后处理表达式'' \\ ==== foreach 循环 ==== foreach 变量名 in 表达式 语句块 end 表达式的值必须是一个支持''foreach''遍历的容器 定义一个变量正序遍历容器,循环执行''语句块'' \\ foreach 变量名 in 表达式1 do 表达式2 表达式1的值必须是一个支持''foreach''遍历的容器 定义一个变量正序遍历容器,循环执行''表达式2''
注意:请勿在foreach中修改被遍历的容器,否则将导致未定义行为
----- \\ ===== 5.5 跳转语句 ===== ==== break 关键字 ==== loop 语句块 if(表达式) 语句块 break end 语句块 end 跳出当前循环 \\ ==== continue 关键字 ==== loop 语句块 if(表达式) 语句块 continue end 语句块 end 跳过循环体内剩下代码,直接继续该循环的下一轮 \\ ==== return 关键字 ==== function fun() 代码块 return end 结束函数并不返回值(返回 ''null'') \\ function fun() return 表达式 end 结束函数并返回''表达式''的**值** ----- \\ ===== 5.6 异常处理 ===== ==== throw 异常 ==== throw 异常对象 从当前域抛出一个异常 \\ try 语句块 catch 异常名 语句块 end 尝试执行 ''try'' 块中的代码,如抛出异常则捕获之