Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby停止并移动到for循环的下一个迭代_Ruby_Loops_For Loop_Escaping_Iteration - Fatal编程技术网

Ruby停止并移动到for循环的下一个迭代

Ruby停止并移动到for循环的下一个迭代,ruby,loops,for-loop,escaping,iteration,Ruby,Loops,For Loop,Escaping,Iteration,我有一个for循环,里面有一个if-elsif语句。在第一个if中,如果条件满足,我希望它停在那里,继续循环的下一个迭代 这是我试图做的一个非常简化的版本: array = [1,2,3,4,"x"] for i in 0..(array.count -1) if array[i] == "x" #start next for loop iteration without executing the elsif elsif array[i] < 3

我有一个for循环,里面有一个if-elsif语句。在第一个if中,如果条件满足,我希望它停在那里,继续循环的下一个迭代

这是我试图做的一个非常简化的版本:

array = [1,2,3,4,"x"]
for i in 0..(array.count -1)
    if array[i] == "x"
        #start next for loop iteration without executing the elsif
    elsif array[i] < 3
        puts "YAY!"
    end
end

不要在中使用
,请使用
每个

(0..10).each do |i|
  next if i == 5

  if i == 10
    puts "YAY!"
  end
end

不要在
中使用
,请使用
每个

(0..10).each do |i|
  next if i == 5

  if i == 10
    puts "YAY!"
  end
end

根据您的编辑,希望您正在寻找以下内容:

arr = [1, 2, 3, "11", 11]
arr.each do |x|
  next if x.instance_of? String
  puts "#{x} is #{x.class}"
end
输出:

编辑

代码:

输出:

V_1(来自你在我的回复帖子中的第一条评论)

输出:

V_2(从你在我的回复帖子中的第一句评论)

输出:


根据您的编辑,希望您正在寻找以下内容:

arr = [1, 2, 3, "11", 11]
arr.each do |x|
  next if x.instance_of? String
  puts "#{x} is #{x.class}"
end
输出:

编辑

代码:

输出:

V_1(来自你在我的回复帖子中的第一条评论)

输出:

V_2(从你在我的回复帖子中的第一句评论)

输出:



啊,好,好,那么“下一步”是说,如果条件满足,就继续下一次迭代?你认为你能一件一件地向我解释你的代码在做什么吗?实际上,这个代码给了我和以前一样的错误。。。让我确切地解释一下我想做什么。我正在迭代一个数组,其中除了一个元素外,所有元素都是整数,但其中一个是字符串。在字符串元素上,我需要循环(无论哪种类型最好)跳过其余代码并转到循环的下一次迭代。这一点很重要,因为第二条if语句使用了“array_element<11条件”,因此如果在string元素上运行该语句,我会得到“string与11的比较失败”@kingweaver88:是否跳过该字符串?使用这个:
next,如果i.is_是一个?(字符串)
ahh ok ok,那么“next”是指如果条件满足,则继续下一次迭代?你认为你能一件一件地向我解释你的代码在做什么吗?实际上,这个代码给了我和以前一样的错误。。。让我确切地解释一下我想做什么。我正在迭代一个数组,其中除了一个元素外,所有元素都是整数,但其中一个是字符串。在字符串元素上,我需要循环(无论哪种类型最好)跳过其余代码并转到循环的下一次迭代。这一点很重要,因为第二条if语句使用了“array_element<11条件”,因此如果在string元素上运行该语句,我会得到“string与11的比较失败”@kingweaver88:是否跳过该字符串?使用此选项:
next if i.is_?(String)
编辑原始问题我添加了一个答案,希望能帮助您解决问题。我已经给了您答案,请尝试理解,妥善处理。是的,非常感谢您的帮助!我的计划现在进展顺利。谢谢你的原创问题,我已经添加了一个答案,希望能帮助你。我已经给了你答案,试着去理解,把事情做好。是的,我非常感谢你的帮助!我的计划现在进展顺利。感谢againok,让我把事情复杂化一点,看看这将如何扩展到我的目的。假设你有一个数组数组,那么如果arr=[[1,2,3,“4”],[4,5,6,7],[8,9,10,11],[8,9,10,11],[3]-->我想迭代arr[x][3]-->输出应该是7 11,我该怎么做呢?嗯,我知道你在这里做什么了,只是你在迭代每个元素。如果我只需要每个内部数组中的第4个元素,这是否可行?所以我想要arr[x][3]这是我尝试过的,但它给了我8,而不是一个8。arr=[[1,2,3,4”],[5,6,7,8],[9,10,11,12]]arr.each{x | x.each{i | next if x[3]。?String if x[3]<12 put x[3]end}的实例u确定您的版本2解决方案有点像我需要的那样。。。然而,我对那里发生的事情有点困惑,你介意解释一下。每个_都有_索引吗?在我的实际代码中,字符串可能会在内部数组中随机弹出,但并不总是索引为0的数组。。。我该怎么做?我试着用的I.instance_替换I==0?字符串,但如果使用的是x.last.instance\u,则会出现错误'ahhh'?字符串代替i==0,那么它就工作了!!非常感谢你的帮助!!好吧,让我把事情复杂化一点,看看这对于我的目的来说是如何扩展的。假设你有一个数组数组,那么如果arr=[[1,2,3,“4”],[4,5,6,7],[8,9,10,11],[8,9,10,11],[3]-->我想迭代arr[x][3]-->输出应该是7 11,我该怎么做呢?嗯,我知道你在这里做什么了,只是你在迭代每个元素。如果我只需要每个内部数组中的第4个元素,这是否可行?所以我想要arr[x][3]这是我尝试过的,但它给了我8,而不是一个8。arr=[[1,2,3,4”],[5,6,7,8],[9,10,11,12]]arr.each{x | x.each{i | next if x[3]。?String if x[3]<12 put x[3]end}的实例u确定您的版本2解决方案有点像我需要的那样。。。然而,我对那里发生的事情有点困惑,你介意解释一下。每个_都有_索引吗?在我的实际代码中,字符串可能会在内部数组中随机弹出,但并不总是索引为0的数组。。。我该怎么做?我试着用的I.instance_替换I==0?字符串,但如果使用的是x.last.instance\u,则会出现错误'ahhh'?字符串代替i==0,那么它就工作了!!非常感谢你的帮助!!
arr = [1, 2, 3, "11", 11]
arr.each do |x|
  next if x.instance_of? String
  puts "#{x} is #{x.class}"
end
1 is Fixnum
2 is Fixnum
3 is Fixnum
11 is Fixnum
arr = [[1,2,3,"4"], [4,5,6,7], [8,9,10,11]] 

arr.each{|x|
x.each{ |i|
next if i.instance_of? String
puts "#{i} is #{i.class}"
}
}
1 is Fixnum
2 is Fixnum
3 is Fixnum
4 is Fixnum
5 is Fixnum
6 is Fixnum
7 is Fixnum
8 is Fixnum
9 is Fixnum
10 is Fixnum
11 is Fixnum
arr = [[1,2,3,"4"], [4,5,6,7], [8,9,10,11]] 
puts arr[1].last,arr.last.last
7
11
arr = [[1,2,3,"4"], [4,5,6,7], [8,9,10,11]] 
arr.each_with_index{ |x,i|
next if i == 0
#p x,i
p "last element of inner array:#{x.last}"
}
"last element of inner array:7"
"last element of inner array:11"