6.2. 프로그램언어 고(Go)의 관계 연산자

프로그램언어 고(Go)에서의 동등 연산자

프로그램언어 고(Go)에서의 동등 연산자를 설명드리겠습니다.
고(Go)언어에서 동등 연산자는 값이 서로 같은지를 비교하는 연산자입니다. 주로 조건문이나 반복문에서 값을 비교할 때 사용합니다.

고(Go)언어의 동등 연산자는 다음과 같이 두 가지가 있습니다.


== // 값이 서로 같은지 비교
!= // 값이 서로 다른지 비교 

예를 들어 다음과 같이 사용할 수 있습니다.


package main

import "fmt"

func main() {

    a := 10
    b := 10

    // a와 b를 비교하여 같으면 true를 반환
    if a == b {
        fmt.Println("a와 b는 서로 같음") 
    }

    c := 11
    
    // a와 c를 비교하여 다르면 true를 반환  
    if a != c {
        fmt.Println("a와 c는 서로 다름")
    }
} 

위 예제코드에서 == 연산자를 사용하여 두 변수 a와 b의 값이 서로 같은지 비교하였고, != 연산자를 사용하여 a와 c의 값이 서로 다른지 비교하였습니다.

동등 연산자는 주로 if문이나 for문과 같은 조건문에서 값을 비교할 때 자주 사용되는 연산자입니다. 또한 배열, 슬라이스, 맵과 같은 자료구조에서도 원소가 있는지 없는지를 확인할 때 사용할 수 있습니다.

위 예제와 같이 동등 연산자를 사용하여 두 값이 서로 같은지, 다른지를 판별한 후 코드를 제어할 수 있습니다. 값을 비교하는 가장 기본적인 방법이므로 꼭 알아두셔야 하는 연산자입니다.

이상으로 프로그램언어 고(Go)에서의 동등 연산자에 대해 간단히 설명해드렸습니다. 쉽게 설명드리느라 노력했는데 부족한 점이 있다면 양해 부탁드립니다.

프로그램언어 고(Go)에서의 부등 연산자

프로그램언어 고(Go)에서의 부등 연산자는 값의 크기를 비교하는 데 사용되는 연산자입니다.


package main

import "fmt"

func main() {

    a := 10
    b := 5

    fmt.Println(a > b) // true
    fmt.Println(a < b) // false
    fmt.Println(a >= b) // true
    fmt.Println(a <= b) // false
    fmt.Println(a == b) // false
    fmt.Println(a != b) // true

}

위의 예제코드에서 보다시피, 고(Go)에는 다음과 같은 부등 연산자가 있습니다.

  • > : 왼쪽 값이 오른쪽 값보다 큰 경우 true
  • < : 왼쪽 값이 오른쪽 값보다 작은 경우 true
  • >= : 왼쪽 값이 오른쪽 값보다 크거나 같은 경우 true
  • <= : 왼쪽 값이 오른쪽 값보다 작거나 같은 경우 true
  • == : 왼쪽 값과 오른쪽 값이 같은 경우 true
  • != : 왼쪽 값과 오른쪽 값이 다른 경우 true

이 연산자들을 사용하여 두 값 사이의 크기 차이를 비교할 수 있습니다.

예를 들어 a > b는 "a가 b보다 큰가?"를 묻는 것이고, a >= b는 "a가 b보다 크거나 같은가?"를 묻는 것입니다.

연산의 결과값은 bool 타입입니다. 즉 true나 false가 반환됩니다.

이 부등 연산자들은 조건문이나 반복문에서 값의 범위를 정하는 용도로 많이 사용됩니다.


if x > 10 {
  // x가 10보다 큰 경우 실행
}

for i := 0; i < 5; i++ { 
  // i가 5보다 작을 때까지 반복
} 

이처럼 부등 연산자를 사용하여 프로그램의 흐름을 제어할 수 있습니다.

위의 예제코드에 있는 ==와 !=는 일반적인 같다/다르다를 비교하는 연산자입니다.

숫자 뿐만 아니라 문자열, 복합자료형 등도 비교 가능합니다.

부등 연산자 사용 시 주의할 점은 연산에 사용되는 값들의 타입이 서로 다를 경우 컴파일 에러가 발생한다는 것입니다.

값의 타입변환이 필요한 경우에는 별도로 타입 변환을 수행한 후 비교 연산을 하시기 바랍니다.

이상으로 프로그램언어 고(Go)의 부등 연산자에 대한 설명을 드렸습니다. 코드 예제와 함께 어려운 개념을 쉽고 자세하게 설명드렸기를 바랍니다.

프로그램언어 고(Go)에서의 크거나 같은 연산자

프로그램언어 고(Go)에서 크거나 같은 연산자는 >= 입니다. 이 연산자는 좌변이 우변보다 크거나 같은지를 확인하는 데 사용됩니다.

예를 들어 다음과 같이 사용할 수 있습니다.


package main

import "fmt"

func main() {
    a := 10
    b := 5

    if a >= b {
        fmt.Println("a가 b보다 크거나 같습니다") 
    }
}

위 예제코드에서 a 변수에 10을, b 변수에 5를 할당합니다.
그리고 a >= b 조건문을 통해 a가 b보다 크거나 같은지 확인합니다.
결과적으로 10은 5보다 크므로 조건문이 true가 되고 "a가 b보다 크거나 같습니다"라는 메시지가 출력됩니다.

크거나 같은 연산자는 숫자 뿐만 아니라 문자열, 배열 등 다양한 타입에서도 사용 가능합니다.
예를 들어 다음과 같이 문자열의 사전식 순서(lexical order)를 비교하는 데도 사용할 수 있습니다.


a := "abc"
b := "abd"

if a >= b {
    fmt.Println(a + "가 사전식 순서상" + b + "보다 앞섭니다")  
}

위 코드의 경우 "abc" 문자열이 "abd" 문자열보다 사전식 순서상 앞에 오므로 조건문이 false가 됩니다.

이 외에도 배열의 길이를 비교하는 등 크거나 같은 비교 연산자는 다양한 목적으로 사용될 수 있습니다.
매우 유용하고 중요한 연산자이므로 잘 활용할 수 있도록 연습이 필요합니다.

프로그램언어 고(Go)에서의 작거나 같은 연산자

프로그램언어 고(Go)에서 작거나 같은 연산자는 <= 입니다. 이 연산자는 왼쪽 값이 오른쪽 값보다 작거나 같은지를 확인하는 비교 연산자입니다.


package main

import "fmt"

func main() {
    a := 3
    b := 5

    // a가 b보다 작거나 같은지 확인
    fmt.Println(a <= b) // true

    // a가 b보다 큰지 확인 
    fmt.Println(a > b) // false
}

위의 예제코드에서 변수 a에 3이, b에 5가 할당되어 있습니다.
a <= b 는 3이 5보다 작거나 같으므로 true가 출력됩니다. 반대로 a > b는 3이 5보다 크지 않으므로 false가 출력됩니다.

<= 연산자를 사용하면 왼쪽 값이 오른쪽 값과 같거나 작은 경우에 true를 반환합니다. 따라서 값의 크고 작음을 비교할 때 자주 사용되는 연산자입니다.

프로그램언어 고(Go)에서의 큰 연산자

프로그램언어 고(Go)에서 큰 연산자(shift operators)는 비트 연산을 위해 사용합니다.


package main

import "fmt"

func main() {

    a := 8 // 정수형 변수 a에 8을 대입

    b := a << 1 // a를 왼쪽으로 1비트 시프트
    fmt.Println(b) // 16

    c := a >> 1 // a를 오른쪽으로 1비트 시프트 
    fmt.Println(c) // 4

}

위와 같이 Go언어에서는 '<<'와 '>>' 연산자를 사용하여 비트를 왼쪽 또는 오른쪽으로 이동시킬 수 있습니다.

'<<' 연산자는 피연산자의 비트를 왼쪽으로 지정된 수만큼 이동시킵니다. 이는 2의 거듭제곱을 곱하는 것과 같은 효과가 있습니다. '>>' 연산자는 피연산자의 비트를 오른쪽으로 지정된 수만큼 이동시킵니다. 이는 2의 거듭제곱을 나누는 것과 같은 효과가 있습니다.

위 예제에서 변수 a에 8을 대입하고 왼쪽 시프트 연산자를 1만큼 적용하면 1000(2진법)이 왼쪽으로 1만큼 이동한 10000(2진법)이 되어 16이 됩니다.

오른쪽 시프트 연산자로 1만큼 이동하면 100(2진법) 이 되어 10진법의 4가 됩니다.

이와 같이 큰 연산자를 사용하여 비트 수준에서 값을 조작할 수 있습니다. 주로 2의 거듭제곱을 곱하거나 나누는 용도로 사용합니다.

Leave a Comment