본문 바로가기
Android Studio/Android Studio

5. Android Studio, Kotlin - for / while 루프문 사용법

by Rosmary 2020. 7. 4.
728x90
반응형

지난 포스팅에서, Kotlin 프로그래밍 언어로 어떻게 배열을 만들고 출력하는지에 대해 알아보았다. 지난 포스팅의 마지막에도 언급한 내용이지만, println(), print() 함수를 이용해 배열값을 하나하나 출력하기에는 번거로운점이 한 둘이 아니다. 이들 배열에 선언된 값을 출력하기 위해서 루프문을 돌려 배열 값을 하나씩 출력해주는 방법으로 이 번거로운 작업을 해결할 수 있는데, Python이나 기타 프로그래밍 언어와 마찬가지로 Kotlin도 for와 while 문법을 제공하고 있다. for 문부터 살펴보자. 

 

 

1. for 문

 

(1) for 문의 포맷

 

for 문의 포맷은 Java 또는 Python과 매우 유사하다(C도 for문이 있지만 포맷이 많이 다르다...). Python과의 차이를 예로 들자면, Python의 경우 for 문의 조건문 뒤에 콜론(:)이 붙고 내용이 들여쓰기로 구분되지만, Kotlin의 경우 조건이 소괄호()로 묶이고, 콜론과 들여쓰기 대신 중괄호{}로 조건과 내용을 구분한다. 

 

두 코드 모두 1에서 10까지 한 줄 씩 순차적으로 출력한다.

 

for 문 자체의 포맷을 익히는 것은 어렵지 않다. 대신, for 문의 구성에 필수적인 조건을 명시하는 부분에 대해 익숙해 질 필요가 있다. 

 

 

 

(2) for 문 내에 조건 작성하기

Kotlin에서 for 문의 조건은 소괄호() 내에 작성된다. for문의 소괄호 내에 작성되는 조건문의 포맷은 아래와 같다.

 

------------------------------------------------

for ( 배열값 1개를 명시할 변수명 in 배열)

------------------------------------------------

 

"어?? 그런데 위에 든 예시에서는 Kotlin 코드에 배열이 없는데요...?"라고 반문하실 분들이 분명 있을 것인데, "1..10"이 의미하는 것이 바로 arrayOf(1, 2, 3, 4, ...,10)과 동일한 의미다. 

 

println() 함수로, numbers 배열의 출력 결과와 println(1..10)의 출력 결과가 동일함을 확인할 수 있다

 

규칙성을 보이는 숫자를 배열로 만들기 위해 일일이 타이핑하여 값을 입력하는 것은 분명 번거로운 일이다. 따라서 Kotlin 역시 Python의 range() 함수와 동일한 기능을 가지는 문법을 제공한다. 

 

 

< 숫자의 순차적 출력 배열 : ..과 downTo, step >

 

규칙적으로 증가하는 숫자를 배열로 만드는 방법은 매우 간단하다. 최소 숫자와 최대 숫자 사이에 마침표(.) 두 개만 입력해주면 된다. 다음과 같이.

 

 

만약, 숫자를 1이 아니라 2씩 증가시키고 싶다면 어떻게 하면 될까? 방금 적은 코드 뒤에 "step 증가숫자"를 입력해주면 된다. 

 

 

 

만약, 큰 숫자에서 작은 숫자 순서로 출력하고 싶다면 어떻게 하면 될까? 언뜻 보면 최소 숫자와 최대 숫자의 위치를 바꿔주면 될 것 같지만, 그렇게 하면 에러가 난다. 이 때는 .. 대신 downTo 라는 예약어를 사용해야 에러 없이 출력되는 것을 확인할 수 있다.

 

 

마찬가지로 감소률도 조정할 수 있는데, 이 때는 증가률을 명시할 때와 마찬가지로 step 예약어를 사용하면 된다. 

 

 

이렇게 숫자 범위를 지정하여 여러 배열에 저장된 값을 한 번에 출력하는 것도 가능하다. 아래와 같이

 

 

..나 down to 문법은 숫자의 증감만 나타내는데 사용하지 않는다. 알파뱃의 내림차순 출력에도 사용되는데, 사용 방법은 숫자의 증감에 사용할 때와 동일하다.

 

 

알파벳의 순차 출력 시, 대문자 Z와 소문자 o 사이의 출력을 진행해보면, Kotlin이 알파벳을 인지하여 해당 결과를 순차적으로 출력하는 것이 아니라는 것을 알 수 있다. Kotlin의 ..도 ASCII코드의 순서에 따라 문자를 출력할 수 있도록 프로그래밍된 것을 확인할 수 있다.

 

 

 

2. while 문

 

(1) whlie 문 포맷

 

여러 프로그래밍 언어와 동일하게, Kotlin 역시 while문 문법을 제공한다. 사용 방법도 다른 언어와 큰 차이는 없다. while 문 조건을 명시하고, 중괄호 {} 내에 조건이 만족할 경우 작동할 코드를 작성하면 된다. 

 

 

while 문의 조건은 부등호 외에도, in 문법을 지원하는데, 아래와 같이 특정 변수값이 배열에 포함되어 있는지 아닌지의 여부도 조건문으로 작성하는 것이 가능하다.

 

Python이 배열 내에 존재하는지를 조건으로 명시한 while문
Py't'on이 배열 내에 존재하는지를 조건문으로 명시한 while문

 

 

while 문 외에도 이와 유사한 do...while 문도 Kotlin에서 사용이 가능하다. do...while 문의 경우, while문과 달리 조건이 뒤에 명시되며, 포맷은 다음과 같다.

 

위의 while 문과 동일한 내용이다. 단지 do가 포함되고 while문의 위치가 바뀌었다는 차이만 존재한다.

 

 


 

이번 포스팅에서는 Kotlin에서 사용할 수 있는 루프문인 for와 while 문(do while문 포함)의 사용방법과, 이를 통해 배열 내에 선언된 값들을 순차적으로 출력하는 방법 및 숫자/알파벳의 순차 출력에 대하여 간략하게 알아보았다.

 

그런데, 배열의 경우 값의 변경은 가능하지만, 새로운 값을 추가하거나 제거하는 작업이 불가능한 자료형이기 때문에 사용하기가 조금 불편하다.

 

따라서, 다음 포스팅에서는 배열과 비슷하나 값의 추가와 제거가 가능한 List 자료형에 대하여 포스팅을 진행하려고 한다.

 

 

 

Fin.

 

 

 

 

 

 

반응형

댓글