在函数体内可使用:符号声明一个跳转标签(Label)。
在同一个函数体内,可使用goto关键字编写“跳转语句”,被执行时跳转到标签位置,执行其它代码。
public plugin_precache()
{
// 生成Init标签,模拟for循环语句的初始化语句位置
Init:
server_print("来到Init位置执行代码.");
new counter = 1;
// 生成Continue标签,模拟for循环语句的条件表达式位置
Continue:
server_print("第%d次来到Continue位置执行代码.", counter);
if (counter < 10)
{ // 模拟for循环语句的循环体入口
// 这里填写for循环体内代码
// 可用goto Continue模拟continue关键字
// 可用goto Break和break关键字
server_print("第%d次进入循环体.", counter);
// 模拟for循环语句的迭代语句
counter++;
// 跳转到Continue:位置
goto Continue;
}
// 生成Break标签,模拟for循环语句的循环体出口位置
Break:
server_print("来到Break位置执行代码.");
}
public plugin_precache()
{
// for (初始化语句; 条件表达式; 迭代语句)
for (new counter = 1; counter < 10; counter++)
{ // 循环体入口
server_print("第%d次进入循环体.", counter);
} // 循环体出口
}
public plugin_precache()
{
// 这里的_:是正常的'值类型标签覆盖'语法
new a = _:1.0;
// 加上括号Float:是'值类型标签覆盖'
(Float:a) += 1.0;
// 不加括号Label:是'跳转标签生成'
Label:
// 这会生成Float跳转标签,遮蔽Float值类型标签
Float:a += 1.0;
}