1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#-*- coding: utf-8 -*-
NAME = ["아이언맨""헐크""토르""스파이더맨"]
 
NAME.each do |ava|
  puts ava
end
=begin
아이언맨
헐크
토르
스파이더맨
=end
 
 
for data in NAME
  puts data
end
=begin
  아이언맨
  헐크
  토르
  스파이더맨
=end
cs

========================================================================================================================
루비에서는 반복문을 사용할 때  for x in a..b 이런 구조보다 x.each do |y| 의 구조를 더 선호해서 사용한다고 한다. 물론 위에서 처럼 결과는 동일하다.
 



in x..y 와 in x...y 의 차이점 ---------------------------------------------------------

in x..y 의 범위(range)는 x 부터 y 를 모두 포함한다. 그러나 in x...y 의 범위는 x 부터 y-1 까지를 포함한다. 

$다른 언어 같은 경우
python : 1 부터 10까지의 범위를 주기 위해서는 for i in range(1, 11): 이라고 코딩한다.
c언어  : 1 부터 10까지의 범위를 주기 위해서는 for (i=1; i<=10; i++)
go언어 : 1 부터 10까지의 범위를 주기 위해서는 for i:=1; i<=10; i++ { ... }
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
26
27
28
29
30
31
32
33
34
puts " ==> in 1..10 <=="
for i in 1..10
  puts "#{i}"
end
=begin
==> in 1..10 <==
1
2
3
4
5
6
7
8
9
10
=end
 
puts " ==> in 1...10 <=="
for i in 1...10
  puts "#{i}"
end
=begin
==> in 1...10 <==
1
2
3
4
5
6
7
8
   
=end
cs



[FOR 문] =====================================================
구구단을 만들어 보았다.
for i in 2..9
for j in 1..9
printf("%2d x %2d = %2d ", i, j, i*j)
end
print("\n")
end

[ 결과 ]




[while 문] =====================================================
num = 0
while TRUE
puts "#{num}"
num += 1

if num == 10
break
end
end


[ 개인적으로 혼자 개발할때는 자신의 취향에 맟줘 코딩해도 무관하지만 협업을 할 경우는 약속된 규칙이 필요하다. ]

 


Class _ Module

 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------

루비 문법에서는 클래스 및 모듈에 사용하는 명칭은 반드시 대문자로 시작해야 된다.

 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------


[그림1] 대문자로 지정하지 않으면 아래와 같이 "Class name should be a Ruby constant" 라는 에러가 발생한다.




[그림2] 클래스명을 대문자로 시작하면 잘 생성된다.



Method --------------------------------------------------------------------------------------------------------------------------------------------------------

영문 소문자 및 구분자 '_' 를 이용해서 스네이크 케이스 (Snake Case) 로 작성하는 것이 관례라고 한다.

----------------------------------------------------------------------------------------------------------------------------------------------------------------------


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Stu_0626
  attr_accessor :val_1
  attr_accessor :val_2
  def initialize
    @val_1 = 0
    @val_2 = 0
  end
 
  def sum_method
    puts "#{@val_1} + #{@val_2} = #{@val_1 + @val_2}"
  end
 
end
 
 
my_Object = Stu_0626.new
 
print "value_1 : "
my_Object.val_1 = gets.chomp.to_i
 
print "value_2 : "
my_Object.val_2 = gets.chomp.to_i
 
my_Object.sum_method
cs