iOS 공부하는 감자

Day4) 연산자, 조건문, 반복문 + 알고리즘 본문

22 베이직 챌린지

Day4) 연산자, 조건문, 반복문 + 알고리즘

DongTaTo 2022. 1. 6. 17:12
반응형

연산자

  • 특정한 문자로 표현된 함수
  • 특정 연산자의 역할을 프로그래머의 의도대로 변경도 가능

 

연산자의 종류

할당 연산자 값을 할당할 때 사용 ( = )
산술 연산자 일반적인 수학 기호 ( +, -, *, /, % 등 )
나머지를 구하는 % 연산자는 Int 자료형끼리만 사용 가능
비교 연산자 값을 비교할 때 사용
삼항 조건 연산자 조건식 ? A : B
조건식이 참이면 A, 거짓이면 B를 반환
범위 연산자 값(수)의 범위를 나타낼 때 사용 (반복문과 사용하기 좋음)
부울 연산자 !B : NOT(부정) 연산자
A && B : AND 연산자
A || B : OR 연산자
비트 연산자 값의 비트 논리 연산을 수행
복합 할당 연산자 할당 연산자 + 다른 연산자
다른 연산자가 수행한 연산 결과를 바로 할당함
오버플로 연산자 스위프트에서는 & 키워드를 사용하여 오버플로에 대비한 연산을 수행할 수 있음
nil 병합 연산자 A ?? B  : A가 nil이 아니면 A 반환, nil이면 B 반환
부호변경 연산자 -A  : A의 부호를 변경
옵셔널 강제 추출 연산자 optionalValue!  : 옵셔널 값을 강제로 추출

 

 

사용자 정의 연산자

  • 사용자 정의 연산자는 아스키문자를 결합하여 만들 수 있음
  • 할당 연산자, 삼항 연산자는 사용자 정의 역할을 부여할 수 없음
  • 사용자 정의 연산자의 기능을 정의하는 코드는 함수를 작성하는 것과 비슷함
  • 사용자 정의 연산자를 만들기 위해서는 먼저 연산자 정의가 필요함
  • prefix operator **    // 전위 연산자 : 연산자가 피연산자 앞에 위치
    postfix operator --   // 후위 연산자 : 연산자가 피연산자 사이에 위치
    infix operator ++     // 중위 연산자 : 연산자가 피연산자 뒤에 위치
  • 제곱을 반환하는 전위 연산자 생성 (prefix)
  • prefix operator **
    
    prefix func **(value: Int) -> Int {
        return value * value
    }
    
    print(**5)  // 25
  • 제곱을 반환하는 후위 연산자 생성 (postfix)
  • postfix operator **
    
    postfix func **(value: Int) -> Int {
        return value * value
    }
    
    print(5**)  // 25
  • 평균을 반환하는 중위 연산자 생성 (infix)  : 중위 연산자를 구현하는 함수 앞에는 infix 키워드를 붙이지 않음
  • infix operator +/
    
    func +/(value1: Int, value2: Int) -> Int {
        return (value1 + value2) / 2
    }
    
    print(20 +/ 60)  // 40

 

 

 

 


알고리즘

<백준>

10951 문제에서 while문을 사용하는데 반복문을 종료하는 시점을 알려주지 않았다..

해당 문제는 EOF(end of file)을 묻는 문제였다.

while let으로 입력값을 받으면 반복하고, 받지 못하면 반복문을 종료하는 방식으로 해결할 수 있었다.

 

 

<프로그래머스>

https://co-dong.tistory.com/8

 

크레인 인형뽑기 게임

크레인 인형뽑기 게임 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에

co-dong.tistory.com

 

반응형