Go의 부울 논리 이해

Go의 부울 논리 이해

2022-06-01 last update

17 minutes reading Development Go
부울 데이터 형식 (bool 은 두 가지 값 중 하나일 수 있습니다.true 또는false.블은 프로그래밍에서 프로그램 흐름을 비교하고 제어하는 데 사용된다.
볼은 수학 논리 지점과 관련된 진가를 나타내고 수학 논리 지점은 컴퓨터 과학의 알고리즘에 정보를 제공한다.부어라는 단어는 수학자 조지 부어라는 이름으로 항상 대문자 B 로 시작한다.
Go for Boolean의 데이터 유형은 bool 이며 모두 소문자입니다.값 truefalse 은 Go의 특수 값이기 때문에 항상 소문자 tf 를 사용합니다.
이 강좌는 bool 데이터 유형의 작업 원리를 이해하는 데 필요한 기초 지식을 소개할 것이다. 이는 볼 비교, 논리 연산자와 진가표를 포함한다.

비교 연산자


프로그래밍에서, 비교 연산자는 값을 비교하는 데 사용되며, 아래로 계산하면 하나의 부울 값true 또는false로 계산됩니다.
다음 표에는 부울 비교 연산자가 표시됩니다.
운영자
이것은 무엇을 의미하는가
==
같다
!=
같지 않다
<
... 보다 적다
>
보다 크다
<=
보다 작거나 같음
>=
보다 크거나 같음
이러한 연산자가 어떻게 작동하는지 알기 위해 Go 프로그램에서 두 변수에 두 개의 정수를 분배합니다.
x := 5
y := 8
이 예에서 x 의 값은 5 이기 때문에 y 보다 작고 후자의 값은 8 이다.
이 두 변수와 그 관련 값을 사용하여 위의 표의 연산자를 훑어보겠습니다.이 프로그램에서 비교 연산자마다 계산 결과가 진짜인지 가짜인지 Go가 출력하도록 요구할 것입니다.이 출력을 더 잘 이해하려면 계산 내용을 표시하기 위해 문자열을 인쇄해야 합니다.
package main

import "fmt"

func main() {
	x := 5
	y := 8

	fmt.Println("x == y:", x == y)
	fmt.Println("x != y:", x != y)
	fmt.Println("x < y:", x < y)
	fmt.Println("x > y:", x > y)
	fmt.Println("x <= y:", x <= y)
	fmt.Println("x >= y:", x >= y)
}
Output
x == y: false x != y: true x < y: true x > y: false x <= y: true x >= y: false
Go는 수학적 논리에 따라 표현식에서 다음과 같이 계산합니다.
  • 5(x는 8y입니까?오류
  • 5는 8이 아닙니까?정답
  • 5는 8보다 작습니까?정답
  • 5는 8보다 큽니까?오류
  • 5는 8보다 작거나 같습니까?정답
  • 5는 8보다 작거나 같지 않습니까?오류
  • 여기에는 정수가 사용되지만 부동 소수점 값으로 대체할 수 있습니다.
    문자열은 부울 연산자와 함께 사용할 수도 있습니다.다른 문자열 방법을 사용하지 않으면 대소문자를 구분합니다.
    실천 과정에서 문자열이 어떻게 비교되는지 볼 수 있습니다.
    Sammy := "Sammy"
    sammy := "sammy"
    
    fmt.Println("Sammy == sammy: ", Sammy == sammy)
    
    Output
    Sammy == sammy: false
    문자열Sammy은 문자열sammy과 완전히 같지 않기 때문이다.하나는 대문자S로 시작하고, 다른 하나는 소문자s로 시작한다.그러나 Sammy 로 지정된 다른 변수를 추가하면 계산 결과는 동일합니다.
    Sammy := "Sammy"
    sammy := "sammy"
    alsoSammy := "Sammy"
    
    fmt.Println("Sammy == sammy: ", Sammy == sammy)
    fmt.Println("Sammy == alsoSammy", Sammy == alsoSammy)
    
    Output
    Sammy == sammy: false Sammy == alsoSammy true
    다른 비교 연산자 >< 를 사용하여 두 문자열을 비교할 수도 있습니다.Go는 문자의 ASCII 값을 사용하여 문자열을 사전 순서대로 비교합니다.
    비교 연산자를 사용하여 부울 값을 계산할 수도 있습니다.
    t := true
    f := false
    
    fmt.Println("t != f: ", t != f)
    
    Output
    t != f: true
    앞의 코드 블록을 계산해 보면 truefalse 과 같지 않다.
    두 연산자=== 사이의 차이를 주의하십시오.
    x = y   // Sets x equal to y
    x == y  // Evaluates whether x is equal to y
    
    첫 번째 = 는 값 부여 연산자입니다. 한 값이 다른 값과 같도록 설정됩니다.두 번째==는 비교 연산자로 두 값이 같은지 여부를 평가한다.

    논리 연산자


    값을 비교하는 데 사용되는 두 개의 논리 연산자가 있습니다.그것들은 표현식을 부울 값으로 계산하여 true 또는 false 으로 되돌려줍니다.이러한 연산자는 &&, ||! 이며 다음과 같이 정의됩니다.
  • & x && yand 연산자입니다.만약 이 두 가지 견해가 모두 사실이라면, 그것은 정말이다.
  • | | (x || y은(는) or 연산자입니다.만약 적어도 한 마디의 문장이 진실이라면, 진실이다.
  • ! !xnot 연산자입니다.거짓으로 진술할 때만 진실이다.
  • 논리 연산자는 일반적으로 두 개 이상의 표현식이 진짜인지 아닌지를 계산하는 데 쓰인다.예를 들어 이 두 가지 상황이 모두 사실이라면 시스템에서 학생들에게 성적을 분배할 것이다.또 다른 예는 사용자가 점포 신용을 가지고 있는지, 지난 6개월 동안 구매를 했는지에 따라 사용자가 인터넷 상점의 효과적인 활성 고객인지 확인하는 것이다.
    논리적 연산자의 작동 방식을 이해하기 위해 세 가지 표현식을 계산해 보겠습니다.
    fmt.Println((9 > 7) && (2 < 4))   // Both original expressions are true
    fmt.Println((8 == 8) || (6 != 6)) // One original expression is true
    fmt.Println(!(3 <= 1))            // The original expression is false
    
    Output
    true true true
    첫 번째 상황에서 fmt.Println((9 > 7) && (2 < 4)) 연산자를 사용했기 때문에 9 > 72 < 4 모두true로 값을 구해야 한다.
    두 번째 상황에서andfmt.Println((8 == 8) || (6 != 6))의 계산 결과는true이기 때문에8 == 8의 계산 결과는false와 차이가 없다. 왜냐하면 6 != 6 연산자를 사용했기 때문이다.or 연산자를 사용하면 그 계산 결과는false가 됩니다.
    세 번째 상황에서 and, fmt.Println(!(3 <= 1)) 연산자는 not 되돌아오는 가짜 값에 대해 반전을 구한다.
    정수 대신 부동 소수점을 사용하고 잘못된 계산을 목표로 합니다.
    fmt.Println((-0.2 > 1.4) && (0.8 < 3.1))  // One original expression is false
    fmt.Println((7.5 == 8.9) || (9.2 != 9.2)) // Both original expressions are false
    fmt.Println(!(-5.7 <= 0.3))               // The original expression is true
    
    이 예제에서는
  • 3 <=1는 최소한 false 표현식이 false로 계산되어야 한다.
  • and는 두 표현식의 계산 결과를 모두false로 만들어야 한다.
  • or의 내부 표현식은 반드시true이고 새로운 표현식의 계산 결과는false이다.
  • 만약 당신이 이 결과에 대해 명확하지 않다면, 좀 더 명확하게 밝히기 위해 좀 보십시오.
    또한 !, &&|| 복합 문장을 작성할 수 있습니다.
    !((-0.2 > 1.4) && ((0.8 < 3.1) || (0.1 == 0.1)))
    
    먼저 가장 안쪽의 표현식을 봅시다. !.이 표현식의 계산 결과는 (0.8 < 3.1) || (0.1 == 0.1)입니다. 왜냐하면 두 수학 문장이 모두 true 이기 때문입니다.
    다음으로 Go는 반환값true을 가져와 다음 내부 표현식true과 조합합니다.이 예는 수학 문장 (-0.2 > 1.4) && (true) 이 false, false-0.2 > 1.4 이 되돌아오기 false 이기 때문에 true 로 되돌아옵니다.
    마지막으로 우리는 외부 표현식이 하나 있다. false, 그 계산 결과는 !(false). 그래서 만약에 우리가 이 문장을 인쇄하면 최종적으로 되돌아오는 값은 다음과 같다.
    Output
    true
    논리 연산자true, &&||는 표현식을 계산하고 부울 값을 되돌려줍니다.

    진가 시계


    수학의 논리적 부분에 관해서는 많은 것을 배워야 하지만, 당신은 프로그래밍할 때의 알고리즘 사고를 개선하기 위해 그 중 일부를 선택적으로 배울 수 있습니다.
    다음은 비교 연산자!와 각 논리 연산자==, &&||의 진가표입니다.비록 당신은 그것들을 추리할 수 있지만, 그것들을 기억하는 것도 도움이 된다. 왜냐하면 이것은 당신의 프로그래밍 결정 과정을 더욱 빨리 할 수 있기 때문이다.

    ! 진가표


    x개
    ==
    y
    상품을 교환하다
    정말
    ==
    정말
    정말
    정말
    ==
    잘못
    잘못
    잘못
    ==
    정말
    잘못
    잘못
    ==
    잘못
    정말

    = = (및) 실제 값 테이블


    x개
    화목하다
    y
    상품을 교환하다
    정말
    화목하다
    정말
    정말
    정말
    화목하다
    잘못
    잘못
    잘못
    화목하다
    정말
    잘못
    잘못
    화목하다
    잘못
    잘못

    &&(또는) 진가표


    x개
    또는
    y
    상품을 교환하다
    정말
    또는
    정말
    정말
    정말
    또는
    잘못
    정말
    잘못
    또는
    정말
    정말
    잘못
    또는
    잘못
    잘못

    ||(비)진가 테이블


    | 비 | x | 반환 |
    | — | — | — | — |
    | 비 | 진 | 가짜 |
    | 비 | 가짜 | 진짜 |
    진가표는 논리에서 자주 사용하는 수학표로 컴퓨터 프로그래밍에서 알고리즘(지령)을 구성할 때 명심해야 한다.

    부울 연산자를 사용하여 흐름 제어


    흐름 제어 문장의 형식으로 프로그램의 흐름과 결과를 제어하려면 뒷부분 자구의 조건을 사용할 수 있다.
    조건의 계산 결과는 블루값true 또는false로 프로그램에서 결정을 내리는 점을 나타낸다.즉, 조건은 당신에게 어떤 값이 진짜인지 가짜인지 알려줄 것이다.
    자구는 조건에 따라 프로그램 결과를 표시하는 코드 블록입니다.즉, 이것은 구성의 "이 작업 수행"부분입니다. "만약 !x 이라면 이 작업을 수행합니다."
    다음 코드 블록은 Go 프로그램의 흐름을 제어하기 위해 비교 연산자와 조건 문장이 협동하는 예시를 보여 줍니다.
    if grade >= 65 {                 // Condition
    	fmt.Println("Passing grade") // Clause
    } else {
    	fmt.Println("Failing grade")
    }
    
    이 과정은 모든 학생의 성적이 합격인지 불합격인지 평가할 것이다.성적이 true인 학생의 경우 첫 번째 문장은 83 으로 평가되고 인쇄 문장 true 을 촉발한다.성적이 Passing grade인 학생에 대해 첫 번째 문장의 계산 결과는 59이기 때문에 프로그램은else표현식false과 관련된print문장을 계속 실행할 것이다.
    부울 연산자는 흐름 제어 문장을 통해 프로그램의 최종 결과를 확정하는 데 사용할 수 있는 조건을 나타낸다.

    결론


    이 강좌는 볼 유형에 속하는 비교 연산자와 논리 연산자, 그리고 진가표와 볼을 사용하여 프로그램 흐름 제어를 소개했다.