공부 자료

 

https://www.youtube.com/watch?v=96rFgaDR5xM&list=PLQdnHjXZyYadiw5aV3p6DwUdXV2bZuhlN&index=6

 

오늘도 화이팅

 

 

 

코틀린에서의 반복문과 증감연산자

 

반복문의 종류

 

조건이 참일 경우 반복을 유지하는 조건형 반복문

 

반복 범위를 정해 반복을 수행하는 범위형 반복문 

 

 

조건형 반복문

 

while, do...while 

 

예제)

 

fun main() {

 

  var a = 0   -------------> 변수 a에 0을 넣는다

  while(a < 5) {   ------------> 조건이 참일 경우

     println(a++)   -------------> a에 1을 더해준다

  }

 

}

 

여기서 증감연산자는,

 

++a, a++, --a, a-- 로써, 1씩 증가시키거나 감소시키는 역할을 한다.

 

그럼, 앞에 붙이는 것과 뒤에 붙이는 것은 어떻게 다른가?

 

전위연산자 ( ++a, --a)는 이미 연산자가 포함된 구문에서 이미 증감된 수를 반영하여 연산이 진행

 

후위연산자 (a++, a--)는 증가나 감소된 수를 해당 구문에서 사용하지 않고 다음 구문부터 사용을 한다

 

간단하게 예를 들어보자,

 

fun main() {

 

  var a = 0 

  while(a < 5) { 

     println(a++)   -------------> [a++ 후위연산자]

  }

 

}

 

후위연산자이니, 현재 구문에서는 사용하지 않는다. 그러므로 출력하면

 

0, 1, 2, 3, 4 가 된다.

 

전위연산자의 경우라면, 현재구문을 포함하니 출력하게 되면

 

1, 2, 3, 4, 5 가 된다.

 

 

그럼 다른 하나인, do...while문은 어떤 차이가 있는가?

 

fun main() {

 

  var a = 0

  do

  {

       println(a++)

  }  while (a < 5)

 

}

 

while에 의한 조건을 체크해 반복한다는 점은 같지만 최초 한번은 조건 없이 do에서 구문을 실행하여 while로 조건을 체크한다는 [선후관계]의 차이가 있다.

 

그러므로, 0, 1, 2, 3, 4가 나오게 된다.

 

따라서, 조건과 관계 없이 반드시 한 번은 실행해야 한다면 do...while문을 사용하여야 한다.

 

 

범위형 반복문 for

 

바로 예를 들어보자.

 

fun main() {

 

  for(i in 0..9) ---> 인덱스로 지정할 변수 i를 생성 ( 이 때, for문에서 변수를 지정하는건 var이 필요없다. ),

                       거기에 in을 붙이고 0..9를 놓으면 0부터 9까지 범위가 지정되어 i가 0부터 9 이내로 동작한다.

 

}

 

기본적으로 for문은 1씩 반복을 하는데

 

fun main() {

 

  for(i in 0..9) {

    print(i)    --------------------> print는 println과 다르게 줄을 떼지 않고 출력해주는 함수이다.

  }

 

}

 

화면에 출력을 해보면

 

0123456789가 출력된다.

 

그럼 증가값을 1이 아닌 다른 값으로 할 수 없을까?

 

이 때는, 단계를 뜻하는 step을 옵션으로 붙여주면 된다.

 

 

for(i in 0..9 step 3) 이렇게 하면

 

0369가 출력된다.

 

 

그럼 감소는?

 

for (i in 9 downTo 0)으로 하면 되고

 

감소 역시 뒤에 step을 붙여주면 감소값을 다르게 설정할 수 있다.

 

 

 

화이팅 내자신

Posted by 노꼴甲
,