프로그래밍/Ruby

Ruby 프로그래밍 - 7. 쉬어가기 구구단 메소드 만들기

seungdols 2015. 2. 19. 20:49


반복문도 알고 메소드도 배웠다. 



이제 구구단을 만들자. 이것도 우습게 여기는 사람 많지만 여기서부터가 시작이다. 구글, 페이스북도 초기는 초라했다.



언어를 떠나 프로그래밍의 가장 핵심은 논리구조다.


누구나 이해 할 수 있게 말하자면, Flow(흐름)이라고 할 수 있다.


지금 짜려는 것은 특정 단을 입력하면 해당 단의 9까지의 곱셈을 출력하는 것이다.


2단 이러면 

2 * 1 = 2

...

..

.

2 * 9 = 18

이런 형식을 말한다.


해보자. 


무엇이 필요로 할까부터 생각한다!


우선 반복문이 필요하다.



2 * 1 = 2 이런 표현의 경우 2의 경우는 사용자가 단을 입력 하는 것이다.

즉, 내가 고려 할 게 아니다.  그럼 난 반복문으로 표현 할 것은 1~9까지다.


반복문으로 하면 for i in 1..9 이렇게 된다.


그리고 출력 형식은 puts "2 * #{i} = #{2*i}" 이렇게 되겠지요??


아직 미완성이다.


무엇이 더 필요할까?


이 코드를 계속 호출 할 수 있었으면 좋겠다. 10번이던지 100번이던지? 그럴때 필요한 것은 메소드!


for i in 1..9

puts "2 * #{i} = #{2*i}"

end


이 형식을 메소드로 이름을 붙이자.


def gugudan

for i in 1..9

puts "2 * #{i} = #{2*i}"

end

end


자 이제 겉껍질을 감싸보았다. 


2%부족하다.



아직 조금 부족하다. 

우리는 2단만 완성하는게 아니다 특정 단 모두를 포함해야 한다.

그럼 우리는 어떻게 할까?


바로 , 메소드의 인자! 

def gugudan(dan) -> dan이라는 변수명에 분명 사용자가 입력한 데이터가 입력 될 것이다.(가정하자)

그럼 

puts "2 * #{i} = #{2*i}" 이 문장도  puts "#{dan} * #{i} = #{dan*i}" 이렇게 바꾼다.


그럼 완전하다. 코드는 이렇다!



 def gugudan(dan)
    for i in 1..9
      puts "#{dan} * #{i} = #{dan*i}"
    end
 end
이제 실행 해보자!
irb(main):049:0> gugudan 2
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
=> 1..9
irb(main):050:0> gugudan 10
10 * 1 = 10
10 * 2 = 20
10 * 3 = 30
10 * 4 = 40
10 * 5 = 50
10 * 6 = 60
10 * 7 = 70
10 * 8 = 80
10 * 9 = 90
=> 1..9
irb(main):051:0>

복습이 중요한듯 싶지만, 프로그래밍은 호기심이 중요하다.

반응형