코드 작성 시 소괄호, 중괄호, 대괄호를 사용하는 이유

sonny·2024년 9월 26일
0

개발 지식이 통통

목록 보기
8/11
post-thumbnail

코드를 쓸 때 소괄호 중괄호 대괄호를 사용하는 차이점이 뭘까?

나는 아직도 아는 것 빼고는 코드를 따라 써보는 초보개발자인데, 문득 코드를 작성하다가 괄호의 의미가 궁금해졌다. 왜 이런 코드를 작성할 땐 이 괄호를 사용할까. 괄호는 꼭 필요한가? 등등 궁금했던 부분에 대해 간단하게 정리하고 넘어가려한다.

소괄호 (), 중괄호 {}, 대괄호 []는 각기 다른 용도로 사용되는데, 프로그래밍 언어에 따라 차이가 있을 수 있지만 일반적인 용도가 있다고 한다.

소괄호 ( )

함수메서드를 호출할 때 사용한다.

소괄호는 함수의 인자를 전달할 때 사용되는데, 수학에서 괄호 안에 값을 넣는 것처럼 함수에도 값을 전달하기 위해 소괄호를 쓴다.

func sayHello() {
    print("Hello!")
}
sayHello() // 호출
  • 함수의 매개변수를 정의하거나 전달할 때 사용한다. 수학적 표현식에서 연산의 우선순위를 정할 때도 마찬가지다.
let result = (2 + 3) * 4 
  • 2 + 3 * 4 로 계산되어 14이 아닌 괄호를 사용한 값의 20을 얻는것과 같이 일반적인 수학계산에서 사용하는 것과 같다고 보면 된다.
if (a > b) {
    print("a가 b보다 크다")
}

for i in (1...5) {
    print(i)
}
  • 그리고 조건문이나 반복문에서 소괄호는 코드 블록을 구분하는 데도 도움을 준다.

중괄호 { }

  • 함수, 조건문, 반복문 등에서 코드 블록을 정의할 때 사용한다.
if condition {
    // 조건문
}
  • 클래스구조체, 열거형을 정의할 때도 사용된다.
class Dog {
    var name: String  // 강아지의 이름
    init(name: String) {  // 이름을 설정하는 초기화 메서드
        self.name = name  // 입력받은 이름을 강아지의 이름으로 저장
    }
}

let myDog = Dog(name: "Buddy")  // 이름이 "Buddy"인 강아지 생성
print(myDog.name)  // Buddy 출력
  • class Dog { ... }: Dog 클래스를 정의한다. 강아지와 관련된 내용을 담는 틀이라고 생각하면 된다.
  • var name: String: name이라는 변수를 만든다. 이 변수는 강아지의 이름을 저장하는 역할을 한다.
  • init(name: String): 초기화 메서드로, 강아지의 이름을 정할 때 사용된다. 클래스를 만들 때 이름을 지정해야 한다.
  • self.name = name: 입력받은 이름을 강아지의 이름으로 저장하는 부분이다.

중괄호의 핵심 역할은 코드의 범위를 명확하게 구분하는 것.

클래스, 구조체, 열거형 내부의 속성, 메서드와 같은 구성 요소들을 하나의 코드 블록으로 묶어주고, 메서드 내부에서도 중괄호를 사용해 실행할 코드 범위를 정의하면서 코드의 실행 흐름을 제어하는 것이다.


대괄호 [ ]

배열이나 리스트를 정의할 때 사용한다. 배열의 특정 요소에 접근할 때도 사용되는데, 각 괄호는 그 목적에 맞게 사용되어 코드의 구조와 가독성을 높이는 역할을 한다고 한다.

let numbers = [1, 2, 3, 4, 5]

let firstNumber = numbers[0] // 1

대괄호는 확실한 개성이 있어 보였지만.. 중괄호소괄호가 비슷하다고 생각해서 좀 더 명확한 해석을 찾아봤는데,

  • 소괄호 ()함수의 입력과 관련된 정보를 포함하며, 기본적으로 "무엇을" 할지를 결정하는 것

  • 중괄호 {}실행할 코드의 범위를 정의하며, "어떻게" 할지를 결정하는 것

요약하자면,

소괄호는 주로 입력이나 계산에서 사용되는 반면, 중괄호는 코드의 실행 범위를 정의하는 데 사용한다.

이 두 가지는 프로그램의 구조와 흐름을 제어하는 데 필수적이라고 하니 잘 기억해두자.

알기 전에는 코드를 따라쓰면서 괄호를 입력할 때 이 괄호를 쓰는 이유가 있겠지~ 하며 사소하게 넘어갈 뻔 했지만, 그렇게 해야하는지를 명확하게 짚고 넘어가니 문법에 대한 이해도가 조금 깊어지려고 하는 것 같다.

profile
iOS 좋아. swift 좋아.

0개의 댓글