[Swift] 코테를 위한 콘솔 입출력 정리

    반응형

    * Swift로 코딩테스트를 준비하며 필요한 입출력 관련 스킬을 정리해 보았습니다.

    * 개인적인 공부 기록 용도로 작성한 글이기에 잘못된 내용을 포함하고 있을 수 있으며,

    지속적으로 내용을 추가해 나갈 예정입니다.

     

    ... 2025.02.12 readLine, print 문법 관련 내용 추가


    #Console Input

    readLine

    readLine은 사용자로부터 문자열을 입력받는 C/C++의 scanf, cin과 같은 콘솔 입력 메서드입니다.

    단, 주의점은 입력값을 단순히 String 타입으로 받아들이는 것이 아닌, Optional String? 타입으로 받기에 입력값을 처리하기 위해서는 Optional Binding 혹은 Optional Unwrapping을 통해 옵셔널 값을 추출해서 사용해야 합니다. 

     

    Optional Unwrapping을 사용하지 않고 단순 출력한 경우

    import Swift;
    var input = readLine();
    print(input)
    nov
    Optional("nov")

     

    Optional Unwrapping을 사용해 옵셔널 값을 추출하여 출력한 경우

    import Swift;
    var input = readLine()!;
    print(input)
    nov
    nov

    #Console Output

    print

    print는 콘솔에 값을 출력하는 기능을 수행하는 메서드로, Java의 System.out.println() 같은 메서드와 동일하게 자동으로 줄 바꿈 됩니다.

    이는 print 메서드의 terminator 파라미터의 기본값이 '\n'으로 설정되어 있기에 발생하는 현상으로, 줄 바꿈을 제거하고 싶다면 terminator의 값을 ""로 바꿔 주면 됩니다.

    만약 공백을 기준으로 구분하거나 다른 문자를 추가하고 싶다면 마찬가지로 terminator 파라미터에 원하는 값을 대입하면 됩니다.

     

    다음은 1~5 사이의 정수값을 출력하는 예제코드로, terminator 파라미터에 대입된 값에 따라 다른 결과값을 출력합니다.

    import Swift;
    
    print("#case1 terminater = '\\n' default")
    for i in 1..<6 {
        print(i)
    }
    print()
    
    print("#case2 terminater = ''")
    for i in 1..<6 {
        print(i, terminator: "")
    }
    print()
    
    print("#case3 terminater = ','")
    for i in 1..<6 {
        print(i, terminator:",")
    }
    print()
    #case1 terminater = '\n' default
    1
    2
    3
    4
    5
    
    #case2 terminater = ''
    12345
    #case3 terminater = ','
    1,2,3,4,5,

     

    String Interpolation

    String Interpolation [문자열 보간법] 이란 ""문자열 내부에 '\(value)' 기호를 넣어 변수를 삽입할 수 있도록 해주는 문법입니다. 

    \() 안에 넣은 표현식은 값으로 평가되며 결과가 문자열 내부에 삽입됩니다. 

    또한 Swift는 함수형프로그래밍 방식을 채택하는 언어이기에 함수가 '일급객체'로 간주되어 변수, 상수뿐만 아니라 함수 호출식또한 삽입 가능합니다.

    import Swift;
    var input = readLine()!
    print("input value : \(input)")
    10
    input value : 10
    반응형

    댓글

    Designed by JB FACTORY