728x90
반응형
질문 : Ruby에 "do… while"루프가 있습니까?
이 코드를 사용하여 사용자가 이름을 입력하고 프로그램은 빈 문자열을 입력 할 때까지 배열에 이름을 저장합니다 (각 이름 뒤에 Enter 키를 눌러야 함).
people = []
info = 'a' # must fill variable with something, otherwise loop won't execute
while not info.empty?
info = gets.chomp
people += [Person.new(info)] if not info.empty?
end
이 코드는 do ... while 루프에서 훨씬 더 멋지게 보입니다.
people = []
do
info = gets.chomp
people += [Person.new(info)] if not info.empty?
while not info.empty?
이 코드에서는 임의의 문자열에 정보를 할당 할 필요가 없습니다.
불행히도 이러한 유형의 루프는 Ruby에 존재하지 않는 것 같습니다. 아무도 이것을하는 더 나은 방법을 제안 할 수 있습니까?
답변
주의 :
Ruby의 저자 Matz가 begin <code> end while <condition>
Kernel#loop
사용을 제안합니다.
loop do
# some code here
break if <condition>
end
다음은 Matz가 언급 한 2005 년 11 월 23 일 의 이메일 교환입니다.
|> Don't use it please. I'm regretting this feature, and I'd like to
|> remove it in the future if it's possible.
|
|I'm surprised. What do you regret about it?
Because it's hard for users to tell
begin <code> end while <cond>
works differently from
<code> while <cond>
RosettaCode 위키 에는 비슷한 이야기가 있습니다.
2005 년 11 월에 Ruby를 만든 Yukihiro Matsumoto는이 루프 기능을 후회하고 Kernel # loop 사용을 제안했습니다.
출처 : https://stackoverflow.com/questions/136793/is-there-a-do-while-loop-in-ruby
728x90
반응형
'개발관련 > other' 카테고리의 다른 글
Selenium WebDriver로 스크린 샷을 찍는 방법 (0) | 2021.11.15 |
---|---|
Bash의 문자열에서 고정 접두사 / 접미사 제거 (0) | 2021.11.15 |
Visual Studio에서 솔루션 (및 디렉터리)의 이름을 바꾸는 적절한 방법 (0) | 2021.11.15 |
코드의 모든 섹션을 축소하는 명령 (0) | 2021.11.15 |
Visual Studio : 바로 가기 키 : Duplicate Line (0) | 2021.11.15 |