프로그래밍/Kotlin

[코틀린 / Kotlin] 반복문(while문, do-while문, for문 , break, continue)

pupu91 2022. 10. 19. 17:44
반응형

 

while문, do - while 문

fun main(){

    var a = 1
    while (a <= 10) {
        println(a)
        a++
    }

    println("after while : $a")

    println("do while test")

    a = 1
    do {
        println(a)
        a++
    } while(a <= 10)
}

출력 결과
1
2
3
4
5
6
7
8
9
10
after while : 11

do while test
1
2
3
4
5
6
7
8
9
10

 

 

for문

(1) in과 범위 객체를 활용한 for문

  범위 객체 : 특정 범위에 대한 정보를 제공하는 객체(..으로 표현 됨)

 

   ..연산자 사용
    var range = 1..10
    println("range : $range")
    println("range.first : ${range.first}")
    println("range.last : ${range.last}")

    for(i in range){
        println(i)
    }
    
    println("oneToTen end")
    
출력 결과
range : 1..10
range.first : 1
range.last : 10
1
2
3
4
5
6
7
8
9
10
oneToTen end

 

 

 

until 사용
    var oneToNine = 1 until 10
    println("oneToNine : $oneToNine")
    println("oneToNine.first : ${oneToNine.first}")
    println("oneToNine.last : ${oneToNine.last}")

    for(i in oneToNine){
        println(i)
    }
    println("oneToNine end")

출력 결과
oneToNine : 1..9
oneToNine.first : 1
oneToNine.last : 9
1
2
3
4
5
6
7
8
9
oneToNine end

 

 

 

..을 사용하여 array 출력
    var arr = arrayOf(1, 2, 3)
   
  /* ..arr.size을 사용하면 존재하지 않은 3번 인덱스까지 접근하게 되므로
      size 뒤에 -1을 넣어줘야 함*/
   for(idx in 0 .. arr.size -1) /
    { println("..연산자 : ${arr[idx]}") }

  /* until 사용하면 arr.size 미만으로 존재하지 않은 인덱스까지 접근하지 않게됨.*/
    for(idx in 0 until arr.size){
        println("until 연산자 : ${arr[idx]}")
    }

출력 결과
..연산자 : 1
..연산자 : 2
..연산자 : 3
until 연산자 : 1
until 연산자 : 2
until 연산자 : 3

 

 

 

downTo
    var tenToOne = 10 downTo 1
    for(i in tenToOne){
        println(i)
    }
    println("tenToOne end")

출력 결과
10
9
8
7
6
5
4
3
2
1
tenToOne end

 

 

 

reversed() 사용
    var tenToOne2 = range.reversed()
    for(i in tenToOne2){
        println(i)
    }
    println("tenToOne2 end")
 
출력 결과
10
9
8
7
6
5
4
3
2
1
tenToOne2 end

 

 

 

step
   var oneToTenStepTwo = 1..10 step 2
    for(i in oneToTenStepTwo){
        println(i)
    }
    println("oneToTenStepTwo end")

출력 결과
1
3
5
7
9
oneToTenStepTwo end

 

 

 

 

제공하고 있는 함수 호출 형태로 작성 가능
    var tenToOneStepTwo = 10.downTo(1).step(2)
    for(i in tenToOneStepTwo){
        println(i)
    }
    println("tenToOneStepTwo")

출력 결과
10
8
6
4
2
tenToOneStepTwo

 

 

 

 

문자범위 생성 가능
    var aToz = 'a'..'z'
    for(c in aToz){
        print(c)
    }
    println("""a'부터 'z'까지 출력""")

    var gaToNa = '가' until '나'
    for(c in gaToNa){
        print(c)
    }
    println("\n'a'부터 'z'까지 출력")

출력 결과
abcdefghijklmnopqrstuvwxyz
a'부터 'z'까지 출력
가각갂갃간갅갆갇갈갉갊갋갌갍갎갏감갑값갓갔강갖갗갘같갚갛개객갞갟갠갡갢갣갤갥갦갧갨갩갪갫갬갭갮갯갰갱갲갳갴갵갶갷갸갹갺갻갼갽갾갿걀걁걂걃걄걅걆걇걈걉걊걋걌걍걎걏걐걑걒걓걔걕걖걗걘걙걚걛걜걝걞걟걠걡걢걣걤걥걦걧걨걩걪걫걬걭걮걯거걱걲걳건걵걶걷걸걹걺걻걼걽걾걿검겁겂것겄겅겆겇겈겉겊겋게겍겎겏겐겑겒겓겔겕겖겗겘겙겚겛겜겝겞겟겠겡겢겣겤겥겦겧겨격겪겫견겭겮겯결겱겲겳겴겵겶겷겸겹겺겻겼경겾겿곀곁곂곃계곅곆곇곈곉곊곋곌곍곎곏곐곑곒곓곔곕곖곗곘곙곚곛곜곝곞곟고곡곢곣곤곥곦곧골곩곪곫곬곭곮곯곰곱곲곳곴공곶곷곸곹곺곻과곽곾곿관괁괂괃괄괅괆괇괈괉괊괋괌괍괎괏괐광괒괓괔괕괖괗괘괙괚괛괜괝괞괟괠괡괢괣괤괥괦괧괨괩괪괫괬괭괮괯괰괱괲괳괴괵괶괷괸괹괺괻괼괽괾괿굀굁굂굃굄굅굆굇굈굉굊굋굌굍굎굏교굑굒굓굔굕굖굗굘굙굚굛굜굝굞굟굠굡굢굣굤굥굦굧굨굩굪굫구국굮굯군굱굲굳굴굵굶굷굸굹굺굻굼굽굾굿궀궁궂궃궄궅궆궇궈궉궊궋권궍궎궏궐궑궒궓궔궕궖궗궘궙궚궛궜궝궞궟궠궡궢궣궤궥궦궧궨궩궪궫궬궭궮궯궰궱궲궳궴궵궶궷궸궹궺궻궼궽궾궿귀귁귂귃귄귅귆귇귈귉귊귋귌귍귎귏귐귑귒귓귔귕귖귗귘귙귚귛규귝귞귟균귡귢귣귤귥귦귧귨귩귪귫귬귭귮귯귰귱귲귳귴귵귶귷그극귺귻근귽귾귿글긁긂긃긄긅긆긇금급긊긋긌긍긎긏긐긑긒긓긔긕긖긗긘긙긚긛긜긝긞긟긠긡긢긣긤긥긦긧긨긩긪긫긬긭긮긯기긱긲긳긴긵긶긷길긹긺긻긼긽긾긿김깁깂깃깄깅깆깇깈깉깊깋까깍깎깏깐깑깒깓깔깕깖깗깘깙깚깛깜깝깞깟깠깡깢깣깤깥깦깧깨깩깪깫깬깭깮깯깰깱깲깳깴깵깶깷깸깹깺깻깼깽깾깿꺀꺁꺂꺃꺄꺅꺆꺇꺈꺉꺊꺋꺌꺍꺎꺏꺐꺑꺒꺓꺔꺕꺖꺗꺘꺙꺚꺛꺜꺝꺞꺟꺠꺡꺢꺣꺤꺥꺦꺧꺨꺩꺪꺫꺬꺭꺮꺯꺰꺱꺲꺳꺴꺵꺶꺷꺸꺹꺺꺻꺼꺽꺾꺿껀껁껂껃껄껅껆껇껈껉껊껋껌껍껎껏껐껑껒껓껔껕껖껗께껙껚껛껜껝껞껟껠껡껢껣껤껥껦껧껨껩껪껫껬껭껮껯껰껱껲껳껴껵껶껷껸껹껺껻껼껽껾껿꼀꼁꼂꼃꼄꼅꼆꼇꼈꼉꼊꼋꼌꼍꼎꼏꼐꼑꼒꼓꼔꼕꼖꼗꼘꼙꼚꼛꼜꼝꼞꼟꼠꼡꼢꼣꼤꼥꼦꼧꼨꼩꼪꼫꼬꼭꼮꼯꼰꼱꼲꼳꼴꼵꼶꼷꼸꼹꼺꼻꼼꼽꼾꼿꽀꽁꽂꽃꽄꽅꽆꽇꽈꽉꽊꽋꽌꽍꽎꽏꽐꽑꽒꽓꽔꽕꽖꽗꽘꽙꽚꽛꽜꽝꽞꽟꽠꽡꽢꽣꽤꽥꽦꽧꽨꽩꽪꽫꽬꽭꽮꽯꽰꽱꽲꽳꽴꽵꽶꽷꽸꽹꽺꽻꽼꽽꽾꽿꾀꾁꾂꾃꾄꾅꾆꾇꾈꾉꾊꾋꾌꾍꾎꾏꾐꾑꾒꾓꾔꾕꾖꾗꾘꾙꾚꾛꾜꾝꾞꾟꾠꾡꾢꾣꾤꾥꾦꾧꾨꾩꾪꾫꾬꾭꾮꾯꾰꾱꾲꾳꾴꾵꾶꾷꾸꾹꾺꾻꾼꾽꾾꾿꿀꿁꿂꿃꿄꿅꿆꿇꿈꿉꿊꿋꿌꿍꿎꿏꿐꿑꿒꿓꿔꿕꿖꿗꿘꿙꿚꿛꿜꿝꿞꿟꿠꿡꿢꿣꿤꿥꿦꿧꿨꿩꿪꿫꿬꿭꿮꿯꿰꿱꿲꿳꿴꿵꿶꿷꿸꿹꿺꿻꿼꿽꿾꿿뀀뀁뀂뀃뀄뀅뀆뀇뀈뀉뀊뀋뀌뀍뀎뀏뀐뀑뀒뀓뀔뀕뀖뀗뀘뀙뀚뀛뀜뀝뀞뀟뀠뀡뀢뀣뀤뀥뀦뀧뀨뀩뀪뀫뀬뀭뀮뀯뀰뀱뀲뀳뀴뀵뀶뀷뀸뀹뀺뀻뀼뀽뀾뀿끀끁끂끃끄끅끆끇끈끉끊끋끌끍끎끏끐끑끒끓끔끕끖끗끘끙끚끛끜끝끞끟끠끡끢끣끤끥끦끧끨끩끪끫끬끭끮끯끰끱끲끳끴끵끶끷끸끹끺끻끼끽끾끿낀낁낂낃낄낅낆낇낈낉낊낋낌낍낎낏낐낑낒낓낔낕낖낗
'가'부터 '나'전까지 출력

 

반응형

중첩 반복문

구구단 출력
    for(i in 2..9){
        for(j in 1..9){
            println("$i x $j = ${i * j}")
        }
    }

출력 결과
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
.
.
.
9 x 1 = 9
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81

 

 

 

별찍기 출력
    var row = 5
    for(i in 1..row){
        for(j in 1..i){
            print("*")
        }
        println()
    }

출력 결과
*
**
***
****
*****

 

 

 

in을 활용한 다양한 for문(배열과 컬렉션 관련)

 

Array
    var arr = arrayOf(1, 2, 3)

    for(i in arr){
        println(i)
    }
    println("array end")

출력 결과
1
2
3
array end

 

List
    var list = listOf(1, 2, 3)
    for(item in list){
        println(item)
    }
    println("list end")

출력 결과
1
2
3
list end

 

 

 

Map
    var map = mapOf(1 to "a", 2 to "b", 3 to "c") //map의 값 = pair
    for(pair in map){
        println(pair)
    }
    println("map end")

출력 결과
1=a
2=b
3=c
map end

 

 

 

Set
    var set = setOf("a", "b", "c")
    for(e in set){
        println(e)
    }
    println("set end")

출력 결과
a
b
c
set end

 

 

 

문자열 출력
    var str ="Hello"
    for(c in str){
        println(c)
    }

출력 결과
H
e
l
l
o

 

 

 

break와 continue

fun main(args: Array<String>){

    var sum = 0
    var i = 0
    while(true){
        sum += i
        i++
        if(i > 10){
            println("break 실행")
            break
        }
    }
    println("sum : $sum")

    println("중첩 반복문 break 사용")
    for(i in 1..3){
        println("outer loop : $i")
        for(j in 1..3){
            println("inner loop: $j")
        }
    }

    while(true){
        print("'b'를 입력하여 break 명령어를 실행 : ")
        var input = readLine()?.trim()
        if(input != "b"){
            println("${input}을 입력하셨습니다")
        }else{
            println("break 명령어를 이용하여 반복문을 탈출합니다")
            break
        }
    }

    println("짝수단만 출력")
    for(i in 2..9){
        if(i % 2 != 0) continue
        for(j in 1..9){
            println("$i x $j = ${i * j}")
        }
    }

출력 결과
break 실행
sum : 55

중첩 반복문 break 사용
outer loop : 1
inner loop: 1
inner loop: 2
inner loop: 3
outer loop : 2
inner loop: 1
inner loop: 2
inner loop: 3
outer loop : 3
inner loop: 1
inner loop: 2
inner loop: 3

'b'를 입력하여 break 명령어를 실행 : a
a을 입력하셨습니다
'b'를 입력하여 break 명령어를 실행 : b
break 명령어를 이용하여 반복문을 탈출합니다

짝수단만 출력
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
.
.
.
8 x 1 = 8
8 x 2 = 16
8 x 3 = 24
8 x 4 = 32
8 x 5 = 40
8 x 6 = 48
8 x 7 = 56
8 x 8 = 64
8 x 9 = 72
반응형