코틀린(Kotlin)/TIL

[코틀린(Kotlin)] 기초문법 while문과 if문 연습

초보왕보초 2023. 12. 19. 21:16
728x90

오늘도 기초 문법에 대해서 공부하는데, 다른 분들의 문제를 풀던 중 주사위 문제가 있었다

 

  • 두 개의 주사위를 던져서 특정한 숫자의 조합을 출력하기
    - 예시) 입력 : 10 / 출력 4+6 = 10
    - 입력 값이 12를 넘어가면 예외처리
    - 여러 조합 중 아무거나 하나만 출력

 

 

for문 두 개를 이용한 방법의 활용

fun main() {
   val num = readLine()!!.toInt()

   for (i in 1..6){
      for (j in 1..6){
         if(i+j==num){
            println("${i} + ${j} = ${num}")
         }
      }
   }
}

처음엔 단순 주사위 문제인 줄 알고 for문 두 개를 이용해서 특정 입력 값(num)을 출력시켰다

우선 하나의 경우의 수만 출력하는 걸 하고 예외처리를 하기 위해 for문 이곳저곳에 break를 입력했는데 해결되지 않았다

하나만 출력하는게 쉽게 되지 않아서 when문도 써보고 했는 데 성공하지 못했다

 

 

 

그래서 튜터님께 여쭤봐서 while문을 활용해 보라는 말씀을 듣고,

특정 조건에서만 반복하는 while문에 조건이 맞았을 때  break나 return 하기로 했다

 

while문을 활용한 방법

fun main() {
   val num = readLine()!!.toInt()
   val range = (1..6)

   while (num < 13) {
      val dice1 = range.random()
      val dice2 = range.random()

      while (num == dice1 + dice2) {
         return println("${dice1} + ${dice2} = ${num}")
      }
      // 입력 값이 1일 때도 예외
      if (num == 1){
         return println("2 ~ 12 숫자를 입력해 주세요")
      }
   }
   // 입력값이 12 초과일 때
   if (num > 12){
      println("2 ~ 12 숫자를 입력해 주세요")
   }
}

 

결과

이 방법으로 문제를 해결하긴 했으나, 아무리 봐도 그냥 조건문 난사한 것 같긴하다문제 해설이나, 다른 분들의 풀이가 나올 때 까지 다른 문제들도 풀어보면서 더 공부해야 할 것 같다

728x90