Ruby 为什么最后3行和5行需要两个结束语句?

Ruby 为什么最后3行和5行需要两个结束语句?,ruby,Ruby,根据,对于if、elsif和else循环,我只需要一个end语句: def dasherize_number(num) nums = num.to_s final_string = '' i = 0 while i < nums.length if i == 0 final_string += nums[i] if nums[i].to_i % 2 == 1 final_string += '-' end

根据,对于
if
elsif
else
循环,我只需要一个
end
语句:

def dasherize_number(num)
  nums = num.to_s
  final_string = ''
  i = 0 

  while i < nums.length
    if i == 0
      final_string += nums[i]
      if nums[i].to_i % 2 == 1
        final_string += '-'
      end
    elsif i == nums.length
      final_string += nums[i]
    else
      if i % 2 == 1
      final_string += '-'
      final_string += nums[i]
    end
  end
  i += 1 
end
puts final_string
end
def dasherize_编号(num)
nums=num.to\u s
最终字符串=“”
i=0
而我

为什么在
i+=1
之间需要有两个
end
语句?

缩进很重要:

def dasherize_number(num)
  nums = num.to_s
  final_string = ''
  i = 0 

  while i < nums.length
    if i == 0
      final_string += nums[i]
      if nums[i].to_i % 2 == 1
        final_string += '-'
      end
    elsif i == nums.length
      final_string += nums[i]
    else
      if i % 2 == 1
        final_string += '-'
        final_string += nums[i]
      end
    end
    i += 1 
  end
  puts final_string
end
def dasherize_编号(num)
nums=num.to\u s
最终字符串=“”
i=0
而我
如果i%2==1,您的
块没有正确缩进。