Ruby

숫자와 문자

본 토픽은 현재 준비중입니다.공동공부에 참여하시면 완성 되었을 때 알려드립니다.

프로그래밍 입문자에게 가장 익숙한 데이터 형(data type)은 숫자와 문자일 것이다. 이번 시간에는 실제로 가장 많이 사용되는 데이터 형인 문자와 숫자를 프로그래밍에서는 어떻게 표현하고 연산하는지 알아보자.

숫자

루비에서는 큰따옴표나 작은따옴표가 붙지 않은 숫자는 숫자로 인식한다.

puts 1+1

결과 : 2

puts 1.2+1.3

결과 : 2.5

루비에서는 숫자 내에 _(언더바)를 허용하는데, 이것은 자리수를 사람이 보기 편하게 하는 용도로 사용될 수 있다. 실제로 해석될 때는 무시된다.

puts 1_000_000+1_000

결과 : 1001000

puts 2-1

결과 : 1

곱하기를 할 때는 *(에스터리스크, Asterisk, 키보드 자판 상으로 숫자 8 위)를 사용한다.

puts 2*5

결과 : 10

나누기를 할 때는 /(슬래쉬, slash, 키보드 자판 상으로 오른쪽 shift 키 왼쪽)를 사용한다.

puts 6/2

결과 : 3

참조

문자

문자는 "(큰 따옴표) 혹은 '(작은 따옴표) 중의 하나로 감싸야 한다. 큰 따옴표로 시작하면 큰 따옴표로 끝나야하고, 작은 따옴표로 시작하면 작은 따옴표로 끝나야 한다. String이라고 한다.

puts "coding everybody"
puts 'coding everybody'

숫자를 따옴표로 감싸면 문자가 된다. 아래는 문자다. .class는 값의 데이터 형을 알려주는 기능이다.

puts "1".class

결과 : string

아래와 같이 따옴표 없는 숫자는 Fixnum이 출력된다. Fixnum은 숫자다.

puts 1.class

결과 : Fixnum

만약 문자열 안에 작은 따옴표나 큰따옴표를 넣고 싶다면 어떻게 해야 할까?

puts 'egoing's ruby'

위와 같은 구문은 문자의 시작과 끝을 컴퓨터에게 알려줄 수 없다. 따라서 아래와 같이 한다.

puts "egoing's ruby"

또는 아래처럼 ' 앞에 \(역슬래쉬로 에터 위에 위치한다)

puts 'egoing\'s ruby'

\를 ' 앞에 위치시키면 ' 를 문자열의 시작과 끝을 구분하는 구분자가 아니라 단순히 문자로 해석하도록 강제 할 수 있다. 이러한 기법을 이스케이프(escape)라고 한다.

여러줄의 표시

여러줄을 표시하기 위해서는 아래와 같이 한다. \n는 줄바꿈을 의미하는 특수한 문자다. \n 사용하는 경우 큰따옴표를 사용해야 한다. 작은 따옴표를 사용하면 \n이 그대로 출력될 것이다.

puts "안녕하세요.\n생활코딩의 세계에 오신 것을 환영합니다"

문자연산

문자와 문자를 더할 때는 아래와 같이 한다.

puts "coding"+" everybody"

결과 : coding everybody

문자를 곱할 때는 '*'를 사용한다.

puts "coding everybody"*3;

결과 : coding everybodycoding everybodycoding everybody

참고

  • 봤어요 0명

댓글

댓글 본문
  1. ddojai
    자문 자답입니다만 인터프리터로 바로 하는 것보다 .rb 파일을 만들어서 빌드하면서 따라하는게 배우는데 좋은 것 같습니다.
    sublimetext 에서 Ruby파일도 빌드가 되네요.
    대화보기
    • ddojai
      맥에서 따라 해보고 있는데요. 아래와 같이 한꺼번에 출력되는 이유를 혹시 아시나요?

      irb(main):014:0> puts "coding everybody"*3;
      irb(main):015:0* puts "coding everybody"*3;
      irb(main):016:0* puts "coding everybody"*3;
      irb(main):017:0* puts "coding everybody"*3;
      irb(main):018:0* puts "coding everybody"*3;
      irb(main):019:0* "
      irb(main):020:0" ""
      irb(main):021:0" "
      coding everybodycoding everybodycoding everybody
      coding everybodycoding everybodycoding everybody
      coding everybodycoding everybodycoding everybody
      coding everybodycoding everybodycoding everybody
      coding everybodycoding everybodycoding everybody
      => "\n\n"
    • Sukmin Lim
      저 같은 심성이 뒤틀린(?) 녀석은 넣어도 무시된다는게 있으면 여러개를 동시에 넣어보기도 한답니다~! ㅎㅎ [1_000_000 + 1_000] 예제를 [1________000+1]로 해봤는데 안되네요 ㅎㅎ
    • 김유진
      하루빨리 동영상도 만들어 주십시오 ㅋㅋ
    • 누렁이
      재미있어요!