728x90
강의 링크 : 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 : 반복문 내용을 생략하고 조건으로 넘어감
- return : 함수의 결과를 반환
- 예외 처리
- 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