Ruby FizzBuzz

6039 단어 Ruby
IT에 경험이 없는 학생들이 배운 것을 수출하다.
FizBuzz는 매우 유명한 프로그래밍 문제입니다.
나도 루비가 공부를 시작했을 때 이 문제에 부딪혔다.
이것은 프로그래밍 초보자들이 특히 기억하고 싶은 문제다.

FizBuzz 질문


1~100의 숫자를 터미널에 출력해 주세요.단,'3의 배수'는 숫자 파이즈 대신 문자열로,'5의 배수'는 버즈로, 쌍방의 배수인'15의 배수'는 파이즈 버즈를 출력하라.

1부터 100까지의 숫자 출력


1~100까지 출력하지만 다음 순서대로puts로 출력하면 효율이 너무 떨어진다.
좋지 않은 예
saple.rb
def fizz_buzz

puts 1
puts 2
puts 3
(中略)
puts 99
puts 100
일정한 처리를 반복할 때while문을 사용합니다.

while 문


while문은 반복적으로 처리하는 문법 중의 하나이다.
sample.rb
  while 条件式 do
    # 処理
  end
조건식 반복 여부를 결정합니다.조건식은 런타임 반복 처리입니다.
1~100까지 출력한다는 것은 숫자가 100 이상이 되기 전에 반복적으로 처리한다는 뜻으로 조건식은 다음과 같다.
sample.rb
num = 1
while (num <=100) do
end
1부터 시작하기 때문에num=1을 정의합니다.while문에 쓰면num을 분별할 수 없으며 오류가 발생할 수 있으니 주의하십시오.
다음은while문 내용으로 처리하는 것을 기술합니다."3의 배수"는 질문과 같이 ""5의 배수""는 Buzz이고 2의 배수가 ""15의 배수""일 때는 Fiz Buzz와 출력입니다."

if문


'3의 배수일 때','5의 배수일 때'등 조건에 따라 처리할 때if문을 사용한다.
조건이 많을 때 elsif를 사용합니다.
서법
sample.rb
  if 条件式1 
    # 条件式1が真(true)のときに実行する処理
  elsif 条件式2 
    # 条件式1が偽(false)のとき、かつ
    # 条件式2が真(true)のときに実行する処理
  elsif 条件式3
    # 条件式1が偽(false)のとき、更に
    # 条件式2が偽(false)のとき、かつ
    # 条件式3が真(true)のときに実行する処理
  else
    # 条件式1と条件式2がどちらとも偽(false)のときに実行する処理
  end
이번 문제에 적용되는 것은 이렇다.
sample.rb
  def fizz_buzz
    num = 1
    while (num <= 100) do
      #15の倍数の時(もしnumを15で割った時の余りが0なら)
      if (num % 15) == 0
        puts "FizzBuzz"
      #3の倍数の時(numを3で割った時の余りが0なら)
      elsif (num % 3) == 0
        puts "Fizz"
      #5の倍数の時(numを5で割った時の余りが0なら)
      elsif (num % 5) == 0
        puts "Buzz"
      #それ以外の時
      else
        puts num
      end
    end
  end
마지막으로 매번 처리가 끝난 후에는num을 하나씩 늘려야 합니다.늘지 않으면 넘은 1을 유지합니다.
영원히 하나만 출력.
완료 코드
sample.rb
 def fizz_buzz
    num = 1
    while (num <= 100) do
      if (num % 15) == 0
        puts "FizzBuzz"
      elsif (num % 3) == 0
        puts "Fizz"
      elsif (num % 5) == 0
        puts "Buzz"
      else
        puts num
      end
      # numを1ずつ増やす num +=1(自己代入演算子)でもOK
      num = num + 1
    end
  end
  #メソッドの実行
  fizz_buzz

좋은 웹페이지 즐겨찾기