Можно ли поместить оператор if в скобку «Ntimes {}» в Ruby? - PullRequest
0 голосов
/ 27 февраля 2012

В рублях, например, если вы хотите вывести первые 25 целых чисел и поставить "," между первым и последним целыми числами в выводе (чтобы немного его очистить), вы могли бы написать что-то вроде приведенного ниже кода? (Я сознательно не использовал циклы while / for.)

N = 25

N.times{|i| print("#{i}")
 if i > 0 and i < 25
   print ", "
}

Если на это уже ответили, пожалуйста, перенаправьте меня на старый пост? Спасибо:)

Ответы [ 3 ]

1 голос
/ 27 февраля 2012

Да. Хотя самый простой способ ответить на эти вопросы - попробовать их в irb. У вашей логики подсчета есть небольшие проблемы.

25.times do |i|
  print "#{i}"
  if i >= 0 and i < 24
    print ","
  end
end
0 голосов
/ 27 февраля 2012

Пример соединения Джоша Й. лучше, но вот ваш метод сведен к одной строке.

N.times {|i| print"#{i}#{', ' if i>=0 and i<N-1}"}
0 голосов
/ 27 февраля 2012

Я понимаю, что это всего лишь пример, но стоит отметить, что вы на самом деле хотели бы использовать для этого Array # join :

irb(main):001:0> [*0..25].join(", ")
=> "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...