728x90
240306
오답
1트
func solution(_ angle:Int) -> Int {
if angle == 180 {
return 4
}
else if angle == 90 {
return 2
}
else if angle > 0 && angle < 90 {
return 1
} else angle > 90 && angle < 180 {
return 3
}
}
안된다,, if 와ㅏ eles if 에 대해서 정확히 모르고 있다
오답노트 : else 를 잘못 작성함 조건은 빼고 리턴값만 넣어주면 됨
2트
func solution(_ angle:Int) -> Int {
if angle > 0 {
if angle < 90 {
print ("0<a<90")
return 1
}
} else if angle == 90 {
print ("90")
return 2
} else if angle > 90 {
if angle < 180 {
print ("90<a<180")
return 3
}
} else {
print ("180")
return 4
}
print("?")
return 4
}
나도 뭔가 잘못 썼다는걸 알지만 어케 고칠지는 모른다
첫번째 if 문에 부합하면 리턴값이 잘나오는데 나머지 값들은 전부 맨 밑 리턴 값이 4가 나온다
오답노트 : 굳이 else if 안에 if 를 넣지 않아도 됨. 마지막에 리턴값도 안넣어도 됨
정답
import Foundation
func solution(_ angle: Int) -> Int {
if angle > 0 && angle < 90 {
return 1
} else if angle == 90 {
return 2
} else if angle > 90 && angle < 180 {
return 3
} else {
return 4
}
}
결국 다른 코드 보고 해봄
다른 사람 코드인데 튜터님과 같이 수정 했다
if 안에 if 을 넣으면 가독성이 떨어져서 else if 로 새로운 조건을 넣고 마지막은 else 로 조건 없이 리턴 값만 넣는다
마지막 조건까지 else if 로 작성하면
Missing return in global function expected to return 'Int'
요런 오류가 나는데
이 함수에선 반드시 Int 값으로 리턴해야하기에 나는 오류이다
func solution3(_ angle: Int) -> Int {
if angle > 0 && angle < 90 {
return 1
} else if angle == 90 {
return 2
} else if angle > 90 && angle < 180 {
return 3
} else if angle == 180 {
return 4
}
return -1
}
이런식으로 마지막에 리턴값을 넣어주면 된다
위에 4가지 조건을 다 충족 못할시엔 -1 이 리턴 될텐데 각도기엔 마이너스가 없을테니 리턴 되지 않겠지?
Swich 와 Guard 로도 가능할지..?
let angle2 = Int.random(in: 0 ... 180)
switch angle2 {
case ..<90:
print("1")
case 90:
print("2")
case 91..<180:
print("3")
case 180:
print("4")
default:
break
}
강의에서 했던 예제를 활용하여 swich 문으로 작성하여 보았다
근데 Return invalid outside of a func 라는 오류가 뜸
리턴값은 함수 밖에서 사용할 수 없다네 ㅠㅠ 그럼 스위치는 어케 리턴하는데요
--> 함수로 묶어주면 된다,,
스위치문으로 다시 풀어 보진 않았따,,
guard 문은
false 일때만 else 블록 실행하고 true 이면 동일한 리턴값을 내보내서 이 문제에는 적합하지 않는 것 같다
728x90
'iOS Swift > Study' 카테고리의 다른 글
프로그래머스 Swift 짝수의 합 (0) | 2024.03.07 |
---|---|
Swift 계산기 만들기 1탄 (1) | 2024.03.06 |
프로그래머스 Swift 나이출력, 숫자 비교하기, 두 수의 합, 두 수의 나눗셈 (0) | 2024.03.05 |
테이블뷰에 이미지와 라벨 넣기 그리고 오류,,,nable to dequeue a cell with identifier peopleCell (0) | 2024.02.29 |
240227 TIL (1) | 2024.02.27 |
댓글