【问题标题】:For statement nested in while statement not working对于嵌套在while语句中的语句不起作用
【发布时间】:2018-07-28 10:47:06
【问题描述】:

我正在学习如何使用 while 和 for 循环,但在 while 循环中执行 for 循环时遇到了困难。我试图在向量上递归一个简单的过程,并让 while 循环设置对向量的哪些部分进行操作的条件。这实际上只是作为一个练习,以了解如何结合使用 for 和 while 循环。

data <- c(1:200)

n=0   

while(n < 100){
for(x in data){
n=x+1
if(x >= 10 & x < 100){
   print("double digit")
} else {
   print("single digit")
}}}

当过程达到从 1:200 运行的向量的 x=100 时,我想停止 while 循环。但相反,for 循环从 1:200 开始遍历向量中的每个元素,当 n 达到 100 时未能停止执行。

如果有任何可以帮助新编码员的建议,我们将不胜感激,谢谢。

我也试过

for(x in data){
n=x+1
while(n < 100){
if(x >= 10 & x < 100){
  print("double digit")
} else {
  print("single digit")
}}}

但代码并没有停止执行。

【问题讨论】:

  • 我看不出双循环的原因。如果您想学习如何使用 whilefor 循环,请一次尝试一个,而不是两者的组合。至少在您熟悉循环之前不会。我将发布一个答案只是为了展示可能的用途。

标签: r for-loop while-loop


【解决方案1】:

首先让我们尝试一个for 循环。每次通过它n 将设置为循环计数器加 1。如果此结果在 10 到 100 之间,则打印一条消息,如果不打印其他内容。请注意,没有循环依赖于n

data <- c(1:200)

n = 0

for (x in data) {
    n = x + 1
    if (n < 100) {
        if (x >= 10 && x < 100) {
            print("double digit")
        } else {
            print("single digit")
        }
    }
}
x
#[1] 200

n
#[1] 201

现在是while 循环。我相信它要简单得多,它只包含一个变量,n

n <- 0
while (n < 100) {
    n = n + 1
    if (n < 100) {
        if (n >= 10) {
            print("double digit")
        } else {
            print("single digit")
        }
    }
}
n
#[1] 100

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 2021-04-15
    • 2013-07-06
    • 1970-01-01
    • 2016-10-30
    • 2023-03-30
    相关资源
    最近更新 更多