이 글은 udemy 강의를 참고하여 작성하였습니다.
작성자 : 김현주
개발환경은 Windows, Android Studio입니다.

Kotlin 스터디 섹션 6 Decisions and Loops
해당 섹션에서는 반복문(Loops) 및 조건문을 학습.
섹션 타이틀에 나타난 의사결정(Decisions, 올바른 기술적 번역인지는 모르겠음)은
말 그대로 논리적 조건에 의해 반복문을 execute하는 위 과정(의사결정)을 포함하여, 조건문 등
섹션 전체 목차의 내용을 칭하거나, 혹은 선언 및 조건이라는 하위 목차 21. 의 내용을 일부만을 의미하는지는 모르겠으나, 쨌든 이번 섹션에서는 반복문과 조건문을 학습함.
1. 반복문
크게 while, do-while, for의 세 가지 반복문을 설명함.
강의에서 해당 반복문들을
반복문 사용( 조건 ) - 실행내용 (Logcat을 통한 확인: Log.i tag, msg)
- (부가적 논리 : else)
의 구성을 취하여 설명함.
반복 선언의 위치나 조건 등 위 요소들의 배치는 사용하는 반복문에 따라 다르지만
java 형식에서 크게 벗어나는 것은 없음.
(+)
Log.i, (태깅)
N..P or ListOf(n, p, q, r) (리스트형식의 ranging)
Index in (~ until, step) 등
부가적으로 알아가는데에 재미가 있음
본문
(1.) while문
while (조건){
실행내용
}
의 형식, 괄호 안 조건이 if로 checking되면서 조건에서 벗어날 때 block됨
강의에서 나타난 예를 정리하면
var x = 10 // 변수 선언
while ( x > 0 ) { //조건, x가 양수 { 이하 실행코드 시작
Log.i(tag: “x = “, msg: “$x”) //가시적 확인을 위한 태깅 및 메세징:
x— //x 감소
} //이상
선언된 변수 x = 10이 반복문 조건 x > 0에 true일 때까지 실행코드 반복,
그 결과 x = 10 부터 1씩 감소하여 실행부를 반복하고 x = 0일 때 block,
(2). do while문
비슷함, 구조상 실행코드를 먼저 언급하고 조건을 선언하는 것이 뒤에 나오는 배치
Ex)
var x = 0
do{
x++
Log.i(tag:” x = “, msg:”$x”)
} while (x <10)
0으로 선언된 x가 1씩 증가하며 Log에 찍힘, 10 미만(9)까지 찍힘
(3) for문
for ( 조건 ) {
실행코드
}
1번의 while문과 크게 벗어나지 않아 차별화 되는 특이점은 모르겠음,
다만 사용된 예시에서 부가적으로 나온 것들 (ranging, step // 캐스팅)이 이해 확장 측면에서 도움 됨
예시
for(index in 1 until 100 step 3){ // 1부터 3씩 뛰며 100까지 1, 4, 7, 10 ~
log.i(tag:"LOG", index.toString()) // 로그로 찍는데 인덱스를 스트링으로 캐스팅
}
결과 1, 4, 7, 10 ~ 99까지 로그로 찍힘.
정리하면 while, do while, for문의 사용에서 배치는 상이할 수 있으나,
반복문은 주어진 제조건(condition)이 true일 때 실행코드를 반복한다는 점에선 같음
2. 선언과 조건문
앞에서 언급한 반복문에 더하여 if(else)와 when을 사용하여
특정 조건에서 지속(continue)하거나 중단(break)을 유도할 수 있음
예를 들어
var countDown = 10 //변수 선언
while (countDown >0 ) { //조건 true때 돌아가는 while반복문
if (countDown == 5) { //break 포인트(조건)를 설정
break
}
Log.i(tag: "COUNTDOWN ! :", msg."$countDown") //실행코드
countDown-- //실행코드
}
}
여기서 countDown변수는 10부터 로그로 찍히고 1감소한다.
이에 countDown 변수가 5일 때 if문 안에서 유효하며 결과적으로 10부터 6까지 찍히는 반복문이 된다.
when을 이용한 조건문을 구성할 수도 있는데 이는 처음보는 구성이어서 신선했다.
when(조건){ 실행코드 } 를 사용하여
예시로 받은 인자 mike = 19에 해당하는 코드만 실행할 수 있다.
var mike = 19
when (mike) {
16 -> textView.setText("MIKE IS 16 years old")
17 -> textView.setText("MIKE IS 17 years old")
18 -> textView.setText("MIKE IS 18 years old")
19 -> textView.setText("MIKE IS 19 years old")
else -> textView.setText("MIKE IS < 16 or bigger than 19")
}
받아오는 인자값이 바뀌는 경우에 유용할 듯, 코드로서 가시성도 좋은 것 같다는 생각.
기타
강사님께선 안드로이드를 위한 코틀린 개발을 강의하시지만 알림음으로 보아 아이폰을 쓰는 듯함.
'GDSC HUFS 3기 > Android with Kotlin Team 2' 카테고리의 다른 글
| [2팀] Ind 30 화면 구성하기: 리사이클러뷰(RecylerView) (0) | 2021.11.03 |
|---|---|
| [2팀]28, 32 - 화면 구성하기: 스피너(Spinner), 프래그먼트(Fragment)끼리 값 주고받기 (0) | 2021.11.03 |
| [2팀] Kotlin Section7_OOP(1) (1) | 2021.10.05 |
| [2팀] Kotlin Section 7 - OOP(2) (0) | 2021.10.04 |
| [2팀] Kotlin Section 5 - Variables, Operators and Expressions (2) | 2021.10.04 |