# variable & input/output

## Data type

*   Numbers (숫자)

    > `my_num = 5`
*   String (문자열)

    > `my_string = "Ruby"`(""을 해줘야한다.)
*   Boolean(true, false)

    > `my_boolean = true`

## variable

variable as a word or name that grasps a single value.

> `my_num`, `my_string`, `my_boolean`이 variable이다.

## MATH

* Addition (+)
* Subtraction (-)
* Multiplication (\*)
* Division (/)
* Exponentiation ( \*\* )
* Modulo (%)

## puts and print

print와 puts의 차이는 puts 는 자동으로 blank line을 추가한다.

```ruby
 print "Hello"
 puts "Konkuk Likelion 5th"
```

## String Method

Method는 `.`을 이용해서 사용된다.

*   `.length` : 문자열의 길이를 계산.

    > `"Hello, I am Dahye".length` 결과 ==> 17
*   `.reverse` : 문자열을 역순으로 출력

    > `"Konkuk".reverse` 결과 ==> kuknoK
*   `.upcase` & `.downcase` : 문자열을 대문자로 & 소문자로

    > `"eric".upcase` 결과 ==> ERIC
*   `.capitalize` : 첫번째글자만 대문자, 뒤의 글자는 소문자.

    > `"konkuk".capitalize` 결과 ==> Konkuk
*   `!` method끝에 !를 붙이게 되면 수정된값이 variable에 저장이된다.

    ```ruby
    a="ruby"
    #=>"ruby"
    a.upcase
    #=>"RUBY"
    a
    #=>"ruby"
    a.upcase!
    #=>"RUBY"
    a
    #=>"RUBY"
    ```
*   `.include?` 주로 조건문과 함께 쓰이며 포함하고 있으면 true, 아니면 false

    ```ruby
    i="Hello, I am Dahye"
    #=> "Hello, I am Dahye"
    if i.include? "a"
      print "hahaha"
    end
    #=> hahaha=> nil
    i.include? "a"
    #=> true
    ```
*   `.gsub` : global substitution 으로 문자를 바꾸고 싶을때 사용.

    ```ruby
    i="Hello, I am Dahye"
    #=> "Hello, I am Dahye"
    i.gsub!(/a/,"e")
    #=> "Hello, I em Dehye"
    ```

## 주석(Comment)

### 주석은 코드를 짤 때 넣는 설명문이다. 코드를 읽는 사람으로 하여금 쉽게 이해할 수 있게 하기 위한 것으로 실행에는 영향을 미치지 않는다.

* `#`은 한 줄의 주석으로 사용된다.
*   `=begin =end`는 주석을 여러줄 사용해야하는경우

    ```ruby
     =begin
     I'm a comment.
     주석을 여러줄로 쓰는경우!
     =end
    ```

    \`\`\`

## Getting input

`gets`는 루비의 method 로 사용자의 입력(input)을 받아온다. gets는 자동으로 blank line이 추가되는데 `chomp`는 이 line을 제거한다.

```ruby
 variable_name=gets.chomp
```

## Printing the Output

`gets.chomp`를 통해 받아온 입력을 출력하기 위해서는 `#{variable_name}`를 통해서 출력할 수 있다.

```ruby
 print "What's your first name?"
 first_name=gets.chomp
 print "my first name is #{first_name}"
```
