과제를 하면서 배운 것들

박중권·2024년 3월 14일
0

스파르타코딩클럽

목록 보기
2/7
  1. ||
이건 제공된 강의 어딘가에 나와있던 기억이 있지만, 
강의의 내용들은 거의 기억이 나지 않음으로 과제를 하면서 사용하면 편할 거 같아 사용하기로 했다.
let a = 5
let b = 10
if a < 0 || b < 0 {
    print("At least one number is negative.")
} else {
    print("Both numbers are non-negative.")
}

|| 이것은 또는 이라는 의미를 가지고 있다.||의 앞 뒤 중 하나만이라도 참이라면 참을 출력해줄 것이다.
하지만 앞 뒤 둘다 거짓이라면 거짓을 출력한다.
  1. repeat {...} while
repeat {
    a = Int.random(in: 1...9)
    b = Int.random(in: 1...9)
    c = Int.random(in: 1...9)
} while a == b || b == c || c == a

{...}while 조건과 일치하지 않을 때까지 반복 repeat를 해주는 공식이다.
  1. readline()
print("Enter your name:")
if let name = readLine() {
    print("Hello, \(name)!")
}

command-line interface에서 input을 받기 제일 기본적인 방법이다.
text를 standard input으로 받고, 그것을 optional string으로 return해준다.
  1. In Swift, when you have an integer value, you can't directly access individual digits using array-like indexing.
func provideFeedback(playerGuess: Int, answer: Int) {
    let playerGuessString = String(playerGuess)
    let answerString = String(answer)
    var strikes = 0
    var balls = 0
    
    // Check for strikes and balls
    for (index, digit) in playerGuessString.enumerated() {
        if digit == answerString[index] {
            strikes += 1
        } else if answerString.contains(digit) {
            balls += 1
        }
    }
    
    해석:
    처음에는 플레이어의 답은 Int로 나올 걸 예상하고 아래의 String부분은 Int로 나와야 한다고
    생각을 했다. 하지만, 과제를 하면서 알게 된 부분은,
    integer 값이 있다면, array 형식의 인덱스에 직접적인 접근이 불가능하다였다.
    그래서 접근을 가능케하려면 String으로 설정을 해야하는 부분이었다.
    
    let playerGuessString = String(playerGuess)
    let answerString = String(answer)
    
profile
Hello World!

2개의 댓글

comment-user-thumbnail
2024년 3월 14일

중요한 내용 위주로 정리 하셨네요! 특히 4번 정말 공감돼요. Swift는 타입에 민감한 언어니까 타입도 엄격히 맞춰주어야 하고, 각 문법마다 지켜야 하는 규칙이 어려운 것 같아요. 머리론 이해가 되는데 막상하려면 잘 안되네용. 저도 과제하면서 저 입력값이랑 출력 타입이 자꾸 오류가 나서 여러번 수정을 거듭했답니다.,,,,, 과제하느라 고생하셨어요!

답글 달기
comment-user-thumbnail
2024년 3월 15일

왕 배우게 된 개념들 정리 너무 잘하셨네요 :>
저도 따로 빼서 정리 해봐야겠어요~~ 덕분에 개념 복습도 하고 갑니다!!!
과제하느라 고생 많으셨어요~~!!!!

답글 달기