일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 이지스퍼블리싱
- 연산자
- Kotlin
- Windows
- c++
- Direct2D
- 백준
- Tips프로그래밍강좌
- 티스토리
- Javascript
- 문법
- Win32
- CS
- 김성엽
- 함수
- tipssoft
- 지식나눔강좌
- VS ERROR
- Visual Studio
- Tips강좌
- 리뷰
- Desktop
- 배열
- 알고리즘
- 프로그래밍
- c
- Programming
- doit코틀린프로그래밍
- 포인터
- c#
- Yesterday
- Today
- Total
F.R.I.D.A.Y.
Kotlin: 11 반복문-while, do-while 본문
이전 시간에 for 구문에 대해 알아봤습니다. 이번엔 while, do-while 반복문에 대해 알아보겠습니다.
while 구문
사람마다 성향 차이가 있듯이 코드를 작성하는 사람마다 선호하는 반복문이 있습니다. 그래서 여러 반복문을 제공하는 것이겠죠. 그런데 무한 반복을 하는 경우에는 while을 사용하곤 합니다.
그런데 코틀린에서는 for 반복문과 while 반복문이 서로 완벽히 하는 일이 다른 것 같네요. for 반복문이 범위를 정해서 하도록 강제한다면, while 반복문의 경우에는 조건식(평가식)이 참(true)인 경우에만 반복하도록 합니다.
구조
코틀린 while 구문의 구조는 아래와 같습니다.
while(expression){
//commands
}
간단히 소개한 것처럼 expression을 평가한 결과가 참인 경우에만 반복합니다.
사용
for 반복문에서 했듯이 1부터 10까지 출력해보겠습니다.
fun main(args:Array<String>){
var i = 1
while(i <= 10){
println(i)
++i
}
println(i)
}
중요한 것은 이것입니다. while 구문이 끝나고 밑에 i값 출력을 한번 더 했습니다. 그랬더니 결과가 10이 아니라 11입니다. 조건식은 반복문을 한번 한번 실행할 때, 처음 평가합니다. 따라서 i의 값이 10이 되었더라도 아직 평가는 참을 반환하므로 내부 명령식 두 개[# println(i)\n++i]가 모두 실행됩니다. 실행된 이후 다시 한번 조건식을 평가하면 i가 11이므로 평가가 거짓이 나오므로 반복문을 탈출하게 됩니다.
무한 반복하기
while 구문에서는 무한 반복을 이용할 수 있습니다.
while(true){
//commands
}
무한 반복을 사용하는 이유는 여러 가지가 존재하지만 어떤 대상을 반복적으로 검사할 때 사용하곤 합니다. 대표적으로
- 컴퓨터 프로그램의 백신 검사
- 채팅 프로그램[# 카카오톡, 라인, 메신저 등]의 채팅 메시지 수신[# 상대가 메시지를 보냈는지 수시로 확인하기]
- 디지털시계
등이 있겠네요. 이들 작업은 모두 사용자가 보는 앞이 아닌 뒤에서 작업이 이루어지는데요, 뒤에서 작업하는 프로그램을 백그라운드[# background] 프로그램, 실제 프로그램이 보인다면 포그라운드[# foreground] 프로그램이라고 부릅니다. 이렇게 이 포스트를 보는 브라우저들 또한 포그라운드 프로그램으로 분류할 수 있겠죠.
do-while 구문
앞서 배운 while 구문과 비슷하면서 다른 것이 있습니다. while 반복문의 경우에는 처음부터 조건을 판단해서 해당 조건이 맞지 않다면 내부 명령을 실행하지 않지만, do-while의 경우에는 최소 한 번은 실행해야할 때 사용합니다.
구조
do-while 반복문의 구조는 아래와 같습니다.
do{
//commands
}while(expression)
사용
사용자로부터 어떤 입력을 받을 때, 입력으로 특정한 문자열이 들어왔을 때 종료하는 경우에도 이 do-while 구문을 이용할 수 있습니다.
fun main(args:Array<String>){
var str:String?
do{
print("input: ")
str = readLine()
println("view : $str")
}while(str != "exit")
println("exit")
}
while과 do-while의 차이
위에서 잠깐 설명했는데, 조건이 맞지 않으면 한 번도 실행하지 않는 while과 달리 do-while의 경우에는 조건이 달라도 한 번은 실행하도록 설계되었습니다. 그래서 아래 코드를 돌리면 while은 실행되지 않더라도 do-while은 실행되죠.
// while
while(false){
println("while loops")
}
// do-while
do{
println("do-while loops")
}while(false)
Next.
# index
'DEV > Kotlin' 카테고리의 다른 글
Kotlin: 13 예외 처리 (1) | 2020.04.05 |
---|---|
Kotlin: 12 흐름 제어하기 (0) | 2020.04.04 |
Kotlin: 10 반복문-for (0) | 2020.04.03 |
Kotlin: 09 분기 제어-when (0) | 2020.04.02 |
Kotlin: 08 분기 제어-if (0) | 2020.04.01 |