R语言 Goto语句
一般编程意义上的Goto语句是一个命令,它将代码带到提供给它的指定行或代码块。当需要从一个编程部分跳到另一个编程部分时,这很有帮助,不需要使用函数,也不需要产生异常的转变。
不幸的是,R语言不支持goto,但它的算法可以很容易地转换为描述其应用。通过使用以下方法,这可以更顺利地进行。
- 使用if和else
- 使用break、next和return
流程图
- 遇到的Goto
- 跳转到指定的行号/代码块的名称
- 执行代码
例1: 检查偶数和奇数的程序
a <- 4
if ((a %% 2) == 0)
{
print("even")
}
else
{
print("odd")
}
输出
[1] "even"
解释一下 。
- 用goto :
- 两个名为EVEN和ODD的块
- 评估为一个
- 如果是偶数,转到名为EVEN的块
- 如果是奇数,转到名为ODD的块。
- 没有goto :
- 评估一个
- 如果是偶数,在if块中运行该语句
- 如果是奇数,在else块中运行该语句
例2: 检查素数的程序
a <- 16
b <- a/2
flag <- 0
i <- 2
repeat
{
if ((a %% i)== 0)
{
flag <- 1
break
}
}
if (flag == 1)
{
print("composite")
}
else
{
print("prime")
}
输出
[1] "composite"
解释一下 。
- 用goto :
- 这不需要标志和if语句来检查标志。
- 评估一个
- 如果发现一个因子,将控制权转移到有打印语句的行号上 – print(“composite”)。
- 如果没有,则将控制权转移到有打印语句的行号上 – print(“prime”)
- 没有goto :
- 评估一个
- 如果发现因子,改变标志
- 当循环完成时,检查标志
- 相应地打印
注意: 由于R没有goto语句的概念,上述例子是用简单的if-else和break语句做的。