GDSC HUFS 3기/Android with Kotlin Team 2

[2팀] Kotlin Section 6 - Decisions and Loops

kangbongja 2021. 10. 4. 22:00

이 글은 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 (조건){

           실행내용

}

의 형식, 괄호 안 조건이 ifchecking되면서 조건에서 벗어날 때 block

 

강의에서 나타난 예를 정리하면

 

var x = 10 // 변수 선언

while ( x > 0 ) {                                   //조건, x가 양수 { 이하 실행코드 시작

           Log.i(tag: “x = “, msg: “$x”)                     //가시적 확인을 위한 태깅 및 메세징:

           x—                                                  //x 감소

}                                               //이상

 

선언된 변수 x = 10이 반복문 조건 x > 0true일 때까지 실행코드 반복,

           그 결과 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으로 선언된 x1씩 증가하며 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")

 

            }

 받아오는 인자값이 바뀌는 경우에 유용할 듯, 코드로서 가시성도 좋은 것 같다는 생각.

 

기타

강사님께선 안드로이드를 위한 코틀린 개발을 강의하시지만 알림음으로 보아 아이폰을 쓰는 듯함.