연산자와 사용자 입력을 사용해야 할 때 Swift 3에서 for 루프를 작성하는 방법에 대해 혼란 스럽습니다.Swift 3 용 루프 작성하기
let userNum = Int(usernumInput.text!)
for i in 1...<=userNum {
if i % 2 == 0 {
print(i)
}
}
연산자와 사용자 입력을 사용해야 할 때 Swift 3에서 for 루프를 작성하는 방법에 대해 혼란 스럽습니다.Swift 3 용 루프 작성하기
let userNum = Int(usernumInput.text!)
for i in 1...<=userNum {
if i % 2 == 0 {
print(i)
}
}
당신은 int 값이기 때문에 그것을 반복 할 수 없습니다 있지만 코드가 가까이있어; SequenceType 프로토콜을 준수하는 객체 만 for ... in 루프에서 사용할 수 있습니다.
let userNum : Int? = Int(usernumInput.text!)
for i in 1...userNum! {
print(i)
if i % 2 == 0 {
print("---")
}
}
출력 : 당신은 단순히 다른 모든 반복을 건너려면
1
2
---
..
, stride
를 시도 - 그것은 다음과 같이 작동
for i in stride(from: 0, to: userNum!, by: 2) {
print(i)
}
출력는 :
0
2
4
..
guard let userInputText = usernumInput.text,
let userInputInt = Int(userInputText) else {
fatalError("Input text is nil or not a valid Int")
}
for i in stride(from: 1, to: 10, by: 2) {
print(i)
}
당신은 코드를 제공하는 대신 답을 설명해야한다. –
이것은 꽤 기본적인 것들입니다. OP를 올바른 방향으로 향하게하는 데 충분한 정보를 제공했습니다. 스트라이드, 가드 등의 문서를 쉽게 찾을 수 있습니다. 후속 질문에 대해서도 답변 해 드리겠습니다. 하지만 SO는 API 참조 검색 엔진이 아닙니다. – Alexander
일반적으로 답변은 OP보다 광범위한 잠재 고객이 볼 수 있습니다. 마지막 문장이 무엇을 의미하는지 모르겠다. –
응 해주신 모든 분들께 감사드립니다! 이것이 가장 도움이 된 대답입니다. 정말 고맙습니다! 이제 Swift 3에서 루프를 포맷하는 방법을 이해합니다. 나는 더 오래된 스타일을 더 좋아한다고 말합니다. – DevSpace
이 솔루션은 필요한 것보다 두 배의 루프 오버 헤드가 있습니다. 모든 숫자를 반복하지 말고 절반 만 건너 뜁니다. – Alexander
반드시 그렇지는 않습니다. OP는 if 문 전에 뭔가를하려고 할 수 있습니다 ... –