如果if条件为true,我如何跳过迭代,并转到do的第一行.终止



我写了以下代码:

require 'net/http'
require 'uri'
require 'IPAddr'
require 'timeout'
require 'Resolv'
require 'open-uri'
#puts "Origin IP:nn"
#originip = gets()
(IPAddr.new("209.85.175.120")..IPAddr.new("209.85.175.150")).each do |address|
  uri = URI("http://#{address.to_s}")
  puts "#{uri}"
  http = Net::HTTP.new(uri.host, uri.port)
  puts "#{http}"
  Net::HTTP.start(uri.host, uri.port) do |http|
    request = Net::HTTP::Get.new uri.request_uri
    response = http.request request
    if response.code == "301" || response.code == "400" then
    end
    #request.initialize_http_header({"Origin" => "#{originip}"})
  end

在我的if条件下,是否可以转到uri = URI("http://#{address.to_s}")

if response.code == "301" || response.code == "400" then
 # condition
end

在上面的代码变为真?如果我的条件成立,我如何转到下一个IP地址并跳过当前IP地址?

有可能在Ruby中做一些类似标签和goto语句的事情吗?

next if response.code == "301" || response.code == "400"

您想跳到下一次迭代,对吗?只需使用next

最新更新