R语言中使用next或break控制循环的方法

学习过C语言,Java语言或者C#语言的同学们知道,在循环体中可以使用continue或者break语句来控制循环的执行情况:即使用continue语句结束某一次循环而继续执行下一次循环,而使用break来结束整个循环。在R语言中可以使用next和break能够达到同样的效果,即在R中next相当于continue的功能,而R中也是使用break来结束整个循环的。下面就详细来探讨一下next和break的使用方法。

R语言中使用next或break控制循环的方法

next的用法

next用于循环体中提前结束某一次循环,注意只结束遇到next时的那一次循环,即在循环体中,如果next后面还有其它语句的话,将不会被执行。其机理可以使用下面的图来说明:

R语言中使用next或break控制循环的方法

next的使用示意图

也就是说,遇到next时,将提前结束了本次循环,进而判断循环条件,如果循环条件满足的话,还要进入循环体继续执行。

下面使用一个例子来说明next的具体使用方法。下面的例子是输出一个向量中的奇数。

R语言中使用next或break控制循环的方法

输出向量中的奇数

在这个例子中,使用for循环来循环每个元素值,在循环体中,使用if来判断这个元素是否能被2整除(余数为0),如果能被2除尽,说明这个元素el就不是奇数,使用next来结束本次循环,即不执行下面的print(el)语句,但是紧接着在vec中读取下一个元素,如果该元素不能被2整除,则不会执行next,就会执行print(el),将其输出来。其在R控制台的输出结果如下:

R语言中使用next或break控制循环的方法

输出奇数的结果情况

当然,这个题目除了使用for循环外,也可以使用while或repeat来实现,有兴趣的读者,自己可以试一试。

break的用法

break用在循环体中结束整个循环,即循环体中如果遇到了break,则整个循环就结束了,而不是像next那样,只结束当次循环。其运行机理可以使用下图来表示:

R语言中使用next或break控制循环的方法

break的运行示意图

从图中可以看出,当在循环体中遇到break时,直接跳出循环体,而执行循环体后面的语句,不再执行循环。下面以一个例子来说明其具体使用方法。

break使用的例子

这个例子是循环找出1000以内能被5整除的数,并将其输出,如果这样的数超过了10个,则结束循环。其程序代码如下图所示:

R语言中使用next或break控制循环的方法

找出1000以内能被5整除的10个数

图中给出了详细的注释,这里对其不再进行解释,其在R控制台中的运行结果如下图所示:

R语言中使用next或break控制循环的方法

算法的运行结果

同样,这个算法也可以使用for循环或者repeat循环来实现,感兴趣的读者可以自己亲手试一试。

关于next和break的用法就说到这里,不知道你是否清楚了,如果有什么问题欢迎给我留言交流。

欢迎您关注本号,本号近期会一直更新R语言方面的文章,内容由浅入深,并且遵循内容的逻辑顺序,如果你是R的初学者,你只需要每天抽出几分钟阅读我每天更新的文章,就可以快速步入R的大门,带你共同体验R进行数据分析的快乐。同时,本号会提供R的相关资源,欢迎关注。


分享到:


相關文章: