관리 메뉴

nkdk의 세상

루비의 배열, 해시, 본문

My Programing/RUBY Rails

루비의 배열, 해시,

nkdk 2008. 3. 9. 22:33
이번엔 배열과, 제어문, 순환문에 대해 보겠다

배열은 a = [ 1, '고양이', 3.14] #세개의 구성을 가즌 배열 생성
a[0]

이렇게 치면 1이 출력된다
a[1]은?
당연히 고양이가 출력되겠다

값을 변경하고 싶다면

a[1] = "개"
이렇게 하면 된다

그런데 이런것이 있다. 반복작업에 대한 지겨움? 즉 이런것 말이다
a = [ '오징어', '벌', '꼴뚜기','고양이','상어','개']

물론 만들어 지기는 하나 ',' 이라는 단순 작업이 얼마나 힘든가?
이 문제를 해결하기 위해

\w 라는 명령어가 있다

a = \w{오징어 벌 꼴뚜기 고양이 상어 개}
이게 끝이다.

instHash = {
'첼로' => '현악기',
'클라리넷'=>'관악기',
'드럼'=>'타악기',
'오보에'=>'관악기',
'트럼펫'=>'금관악기',
'바이올린'=>'현악기'
}

instSection['오보에']
출력값은 ' 관악기' 이다.

이 내용은 나중에 컨테이너에서... array와 hash에서.. 자세히 파보자 파면 팔수록 더 깊어지니까 ㅎ

제어문은 일단 if 문이나 while 같은 거겠다

if count < 10
puts "again"
elsif tries == 3
puts "lose"
else
puts "Enter a number"
end

while 의 경우

while weight > 100 and num_Pallets >= 30
pallet = next_Pallet()
weight += pallet.weight
numPallets += 1
end

루비에서는 대부분의 구문이 값을 반환하기 때문에 제어문의 조건절에 이런 구문을 직접 써도 된다. 예로 gets 메서드는 표준 입력 스트림의 다음 줄을 반환하게 되는데 파일의 끝에 도달한 경우 특별히 nil을 반환한다. 루비는
조건문에서 nil을 거짓으로 간주하기 때문에 아래의 코드로 작성도 가능하다

while line = gets
puts line.downcase
end

--- 자 이건 넘어가고 if 문의 두가지 표현 방식

if radi > 3000
puts "Warning"
end

이것과

puts "Warning" if radi > 3000

이건 서로 같은 이야기다.

이것까지다.^^ 다음은 정규표현식에 대해 알아보겠다.