R语言 如何创建一个嵌套的For循环

R语言 如何创建一个嵌套的For循环

编程语言中的循环是一个接一个执行的指令序列,除非最终条件得到满足。循环的使用在程序中是非常频繁的。

循环的必要性

让我们考虑一个场景,我们想打印从1到3的自然数,我们可以简单地一个一个地打印。但是,如果范围很高,1到100或者1到10000,甚至1到100000,那么一个一个地打印它们就是一项繁琐的工作。在这种情况下,循环是相当有效的,同时也提高了源代码的可读性。在R语言中,循环大致分为三类:for、while和repeat。本文重点介绍R语言中For循环的工作。

R语言中的For循环

For 循环是常用的循环类型之一。它是一个控制语句,在需要执行多个语句的情况下使用。在R语言中,for循环遵循以下语法。

语法

for (element in sequence) {

//主体

}

这里,元素是序列中一个接一个的实际值,从头开始。

R中的嵌套for循环

一个嵌套的for-loop在另一个for-loop里面有一个for-loop。对于外部for-loop的每一次迭代,内部循环将被执行,除非内部循环的最终条件被满足。一旦一个内部for-loop在一个特定的外部迭代中被执行,那么外部for-loop将进入下一个迭代,现在内部循环将在这个迭代中被执行。这个过程不断重复,直到外循环的最终条件得到满足。嵌套for-loop可以被看作是在二维空间中一个一个地迭代整数坐标。例如,打印

(0,0)   (0,1)   (0,2)
(1,0)   (1,1)   (1,2)
(2,0)   (2,1)   (2,2) 
(3,0)   (3,1)   (3,2) 

下面是R语言中嵌套for-loop的语法。

语法

for (element1 in sequence1) {

for(element2 in sequence2)

// body

}

例1: 在下面的程序中,我们在外循环中迭代0到3,对于外循环中的每个值,我们在内循环中迭代0到3。

# R program to illustrate the working of
# nested for-loop 
  
# Iterating over 0 to 3 in the outer
# for-loop
for (x in 0:3){
        
      # Iterating over 0 to 3 in the inner 
    # for-loop
      for (y in 0:3)
    {
        # Print x and y 
          print(paste("(", x, ",", y, ")"))
  
    }
}

输出

如何在R中创建一个嵌套的For循环?

例2: 在下面的程序中,我们在外循环中迭代1到5,对于外循环中的每个值,我们在内循环中迭代1到5,同时打印两个值的总和。

# R program to illustrate the working 
# of nested for-loop
  
# Iterating over 1 to 5 in the outer 
# for-loop
for(number1 in 1:5)
{
      # Iterating over 1 to 5 in the inner 
    # for-loop
    for(number2 in 1:5)
    {
        # Print the sum of number1 and number2
        print(paste(number1, "+", number2, "=", 
                    number1 + number2));
    }
}

输出

如何在R中创建一个嵌套的For循环?

Next 语句

大多数语言都提供了一些功能,使用这些功能我们可以跳过当前的迭代,如果存在下一个迭代,就去找它。为此,我们在R语言中使用了 “Next “语句。

例1: 在下面的程序中,如果 number1 的值等于1,我们将跳过内部for-loop。

# R program to illustrate the working
# of next statement in nested for-loop
  
# Iterating over outer loop
for(number1 in 1:5)
{
      if(number1 == 1)
      next
      # Iterating over outer loop
    for(number2 in 1:5)
    {
        # Print the sum of number1 and number2
        print(paste(number1, "+", number2, "=",
                    number1 + number2));
    }
}

输出

如何在R中创建一个嵌套的For循环?

例2: 在下面的程序中,如果内部for-loop中 number2 的值等于1,我们将跳过打印语句。

# R program to illustrate the working
# of next statement in nested for-loop
  
# Iterating over outer loop
for(number1 in 1:5)
{
      # Iterating over outer loop
    for(number2 in 1:5)
    {
        # If number1 is equal to 1
        # Then skip the print statement below
        # and move to the next iteration
        if(number2 == 1)
              next
        
        # Print the sum of number1 and number2
        print(paste(number1, "+", number2, "=",
                    number1 + number2));
    }
} 

输出

如何在R中创建一个嵌套的For循环?

Break语句

大多数语言都提供了一些功能,我们可以利用这些功能停止for-loop的迭代,并从当前for-loop的范围中出来。为此,我们在R中使用了 “break “语句。R中的break语句与C或C++中的break语句相同。

例1: 在下面的程序中,一旦 number1 的值达到2,外部for-loop的控制流就会离开范围。

# R program to illustrate the working
# of break statement in nested for-loop
  
# Iterating over 1 to 5 in outer for-loop
for(number1 in 1:5)
{
    # If number1 is equal to 2
    # then break the flow of control
    # and come out of the outer loop
      if(number1 == 2)
      break
        
    # Iterating over 1 to 5 in inner for-loop
    for(number2 in 1:5)
    {
        # Print the sum of number1 and number2
        print(paste(number1, "+", number2, "=", 
                    number1 + number2));
    }
}

输出

如何在R中创建一个嵌套的For循环?

例2: 在下面的程序中,一旦 number2 的值达到2,内部for-loop的控制流就会离开范围。

# R program to illustrate the working of
# break statement in nested for-loop
  
# Iterating over 1 to 5 in the outer for-loop
for(number1 in 1:5)
{
  
# Iterating over 1 to 5 in the inner for-loop
    for(number2 in 1:5)
    {
        # If number2 is equal to 2 then stop
        # the flow of control
        # and come out of the inner for-loop at the moment
        if(number2 == 2)
            break
              
          # Print the sum of number1 and number2
        print(paste(number1, "+", number2, "=", 
                    number1 + number2));
    }
}

输出

如何在R中创建一个嵌套的For循环?

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程