gpt4 book ai didi

Ruby - 循环 IF x 次并更改条件

转载 作者:太空宇宙 更新时间:2023-11-03 18:08:55 29 4
gpt4 key购买 nike

我想在 if 语句上循环 20 次,但每次运行时,有些事情必须改变。

例子:

    input = [0,0,0,44,754,22,0,632,2,22,0,2,nil,2,24,nil,666,90909,2,4,6,7,2,7,3,2,2,7,1,8,6,3,2,19,5,46]

Statement = "Statement THIS"

if
input[1] != nil &&
input[2] == 0
Statement.sub! "THIS", "WHERE #{input[8]} #{input[9]} THIS"
else
end

puts Statement #Statement WHERE 2 22 THIS

if
input[5] != nil &&
input[6] == 0
Statement.sub! "THIS", "AND #{input[12]} #{input[13]} THIS"
else
end

puts Statement #Statement WHERE 2 22 AND 2 THIS

if
input[9] != nil &&
input[10] == 0
Statement.sub! "THIS", "AND #{input[16]} #{input[17]} THIS"
else
end

puts Statement #Statement WHERE 2 22 AND 2 AND 666 90909 THIS

在第二个 IF 语句中,以下内容发生了变化:

  1. 每个key增加了4(1,2,8,9变成了5,6,12,13)
  2. WHERE 变成了 AND

我希望此行为再重复 18 次,因此第三个 IF 语句具有:

  1. 每个键都增加了 4(5、6、12、13 变成了 9、10、16、17)
  2. HELLO 一词已更改为 GOODBYE(但是此规则现在是多余的,因为第二个 IF 语句已解决)。

最佳答案

input = [
0,0,0,44,754,22,0,632,2,22,0,2,
nil,2,24,nil,666,90909,2,4,6,7,
2,7,3,2,2,7,1,8,6,3,2,19,5,46
]

(1..Float::INFINITY).step(4) do |i|
i = i.to_i # is float here
break Statement if i >= input.size
next if input[i].nil? || !input[i+1].zero?

keyword = Statement =~ /WHERE/ ? 'AND' : 'WHERE'
Statement.sub! "THIS", "#{keyword} #{input[i+7]} #{input[i+8]} THIS"
end
#⇒ "Statement WHERE 2 22 AND 2 AND 666 90909 THIS"

关于Ruby - 循环 IF x 次并更改条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38144713/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com