728x90
조건문을 통한 분기 (1)

강의 링크 : https://www.edwith.org/boostcourse-mo-kotlin-basic1/joinLectures/28611

조건문을 통한 분기 (1)

  • C언어의 조건식과 유사
if(...) { ... } else if (...) { ... } else { ... } val bar = if(...) a else b //1줄로 축약 가능 //if문을 이용한 대입 val a = 1 val b = 2 val bar = if(...) { println("a") a } else { println("b") b }
  • in 연산자 : 범위 내에 값이 있는지 확인
if (score >= 80 && score <= 89>) //score이 80 ~ 89 내인지? if (score in 80..89) { ... } // 위와 동일한 동작

조건문을 통한 분기 (2)

  • When문 : Switch - Case문의 간략화
when(x) { /*(일치하는 값 or 표현식) -> 수행할 명령문*/ 0, 1 -> printf("x is 0 or 1") returnvalue(x) -> print("return is correct") // 함수 리턴값과 비교 is Int -> println("x is int") /*(일치하는 범위) -> 수행할 명령문*/ in 1..10 -> println("x is in 1 ~ 10") !in 10..20 - > println("x is not in 10 ~ 20") ... /*else -> 수행할 명령문*/ else -> println("??") }
  • 인자가 없는 경우 - 다양한 조건식 구성 가능
var scroe = readline()!!.toDouble() var grade : Char = 'F' when { score >= 90.0 -> grade = 'A' score in 80.0..89.9 -> grade = 'B' score in 70.0..79.9 -> grade = 'C' else -> grade = 'F' } ...

반복문

  • for문
for(x in 1..5) // (요소 변수 in (컬렉션 or 범위)) { ... }
  • 다양한 반복법
//감소 for (i in 5 downto 1) //5,4,3,2,1 //단계별 증가 for (i in 1..5 step 2) //1, 3, 5 //혼합 for (i in 5 downto 1 step 2) //5, 3, 1
  • while문 : C의 while / do-while과 동일하게 동작한다.
while(...) { ... } //조건을 만족하는 동안 계속 동작 do { ... }while(...) //조건 검사가 밑에서 동작하므로 처음 1회는 무조건 동작

흐름의 중단과 반환 (1)

  • 흐름 제어
    • return : 함수의 결과를 반환
      • 반환값이 없는 경우 return 혹은 return Unit
      • 함수 마지막에는 Unit을 생략해도 return Unit이 동작함
    • break : 반복문을 끝냄
    • continue : 반복문 내용을 생략하고 조건으로 넘어감
  • 예외 처리
    • try {...} catch {...} : 예외 발생시 catch 내용 수행
    • try {...} catch {...} finally {...} : 예외가 발생해도 finally 내용은 수행

예외 처리

  • 실행 도중에 비정상적으로 프로그램 종료 시
    • OS 문제 (System Call Fault 등)
    • 입력값 문제 (int형에 문자열 입력 등)
    • 연선 문제 (divide by zero 등)
    • 메모리 할당 실패
    • HW 문제(전원 문제, 기억 장치 문제 등)
try { //예외처리 가능성이 있는 문장 } catch(e:classname) //e:예외처리 클래스 이름 { //예외처리 문장 } finally { //try-catch와 무관하게 실행할 문장 }
  • 사용자에 의한 예외 발생
    • throw Exception(message : String)을 이용
if(/* error */) { throw Exception("Error!") }
728x90

+ Recent posts