반복문 loop

Leechaeyeon·2023년 5월 17일
0
post-thumbnail

반복문

코드 일부분을 원하는 만큼 반복 시키고자 할 때 사용

for, while , do ~ while문을 제공

For문

  • 배열과 같이 값들을 관리하는 요소들을 이용해 코드를 반복하는 반복문
  • 관리하는 값의 개수 만큼 반복
for( 변수 in 배열 ) { 
	코드 
	} 
  • 1~10까지 총 10번 반복하고 반복할 때 마다 반복회차에 해당하는 값을 in 좌측 변수에 담아준다. ( 변수의 타입은 정의하지 않아도 된다. )
    for ( item in 1..10 ) {
    		print(item)
    }
  • 2씩 증가 시키는 경우
    for(item in 1..10 step 2 ) { 
    	print(item) 
    } 
  • 10부터 감소시키는 경우
    for ( item in 10 downTo 1 ) {
    		print(item) 
    }
    • step - 1은 안됨
  • 10부터 2씩 감소
    for ( item in 10 downTo 1 step 2){
    	print(item) 
    } 

while 문

  • 주어진 조건이 만족할 경우 반복되는 반복문
  • 조건식이 상단에 있으므로 조건식이 거짓이면 단 한번도 수행되지 않는다.
  • java와 동일하다.
while ( 조건식 ) { 
	코드 
} 

do - while 문

  • 주어진 조건이 만족할 경우 반복되는 반복문
  • 조건식이 하단에 있으므로 조건식이 거짓이라도 단 한번은 수행된다.
  • java와 동일하다.
do {
	코드 
} while(조건식) 

Loop 예제

📎 학생 수를 입력받는다. 입력 받은 학생의 수 만큼 반복하며 학생의 이름, 학년 , 국어, 영어, 수학 점수를 받는다. 입력이 완료되면 각 학생들의 정보를 출력하고 각 과목별 총점과 평균을 출력한다. 학생의 정보는 각각 ArrayList를 만들어서 각각 담아준다.
import java.util.Scanner
// 점수를 담을 ArrayList
val nameList = ArrayList<String>()
val gradeList = ArrayList<Int>()
val koreanList = ArrayList<Int>()
val englishList = ArrayList<Int>()
val mathList = ArrayList<Int>()

val Scanner = Scanner(System.`in`)

fun main(){
    // 학생 수를 입력받는다.
    val studentCount = inputStudentCount()
    // println(studentCount)
    // 학생 정보를 입력받는다.
    inputStudentInfo(studentCount)
    // 학생 정보를 출력한다.
    printStudentInfo(studentCount)
    // 과목별 총점과 평균을 출력한다.
    printTotalAvg(studentCount)
}

// 학생 수를 입력받는 함수
fun inputStudentCount(): Int {
    print("학생 수를 입력해주세요 : ")
    return Scanner.nextInt()
}
// 학생의 정보를 입력받는 함수
fun inputStudentInfo(studentCount:Int){
    for (a1 in 1..studentCount){
        print("이름 : ")
        val name = Scanner.next()
        print("학년 : ")
        val grade = Scanner.nextInt()
        print("국어 : ")
        val korean = Scanner.nextInt()
        print("영어 : ")
        val english = Scanner.nextInt()
        print("수학 : ")
        val math = Scanner.nextInt()

        nameList.add(name)
        gradeList.add(grade)
        koreanList.add(korean)
        englishList.add(english)
        mathList.add(math)
    }
}
// 학생들의 정보를 출력하는 함수
fun printStudentInfo(studentCount: Int){
    for(a1 in 1..studentCount){
        println("이름 : ${nameList[a1 - 1]}")
        println("학년 : ${gradeList[a1 - 1]}")
        println("국어 : ${koreanList[a1 - 1]}")
        println("영어 : ${englishList[a1 - 1]}")
        println("수학 : ${mathList[a1 - 1]}")
    }
}
// 각 과목별 총점과 평균을 출력하는 함수
fun printTotalAvg(studentCount: Int){
    // 과목별 점수를 담을 변수
    var koreanTotal = 0
    var englishTotal = 0
    var mathTotal = 0

    for(a1 in 1..studentCount){
        koreanTotal += koreanList[a1 - 1]
        englishTotal += englishList[a1 - 1]
        mathTotal += mathList[a1 - 1]
    }

    // 과목별 평균을 구한다.
    val koreanAvg = koreanTotal / studentCount
    val englishAvg = englishTotal / studentCount
    val mathAvg = mathTotal / studentCount

    // 출력한다
    println("국어 총점 : $koreanTotal")
    println("영어 총점 : $englishTotal")
    println("수학 총점 : $mathTotal")
    println("국어 평균 : $koreanAvg")
    println("영어 평균 : $englishAvg")
    println("수학 평균 : $mathAvg")
}

break

  • 가장 가까운 반복문을 종료
  • 반복 횟수가 남아있더라도 종료

continue

  • 반복문에서 continue이후에 코드가 더 있더라도 다시 위로 올라가는 구문
  • continue 이후의 코드를 무시하고 다음 반복으로 진행되도록 하는 구문

0개의 댓글