목표
반복문을 이용하여 중복되는 코드를 줄여봅시다.
사전지식
ForEach, if~else
자가진단 테스트
Q1. ForEach를 이용하여 반복문을 만들 수 있나요?
참고자료
같은 것을 반복해주는 반복문
https://opentutorials.org/course/5027/32014
조건을 가지고 분기를 하는 조건문
https://opentutorials.org/course/5027/32013
완성화면
예제코드
- 기존에 HStack 안에 반복되던 코드를 ForEach 반복문을 이용하여 중복을 제거해줍시다.
import SwiftUI
struct ContentView: View {
@State private var totalNumber: String = "0"
private let buttonData: [String] = ["7", "8", "9", "×"]
var body: some View {
ZStack {
Color.black.ignoresSafeArea()
VStack {
Spacer()
HStack {
Spacer()
Text(totalNumber)
.font(.system(size: 73))
.foregroundColor(.white)
.padding()
}
HStack {
ForEach(buttonData, id: \\.self) { row in
Button {
if totalNumber == "0" {
totalNumber = "7"
} else {
totalNumber += "7"
}
} label: {
Text(row)
.frame(width: 80, height: 80)
.background(Color("NumberButton"))
.cornerRadius(40)
.foregroundColor(.white)
.font(.system(size: 33))
}
}
}
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}