// 시도1 대실패!!!!!!!
class Solution
{
fun solution(n: Int): Int
{
var answer : Int = 0
// 반복문 까먹음
return if (n % 2 == 0) // if 앞에 return 사용
{
answer += n
} else 0
}
}
//시도2 대성공!!!!!!
class Solution
{
fun solution(n: Int): Int
{
var answer = 0
for (i in 1..n)
{
if (i % 2 == 0)
{
answer += i
} else 0
}
return answer
}
}
for (i in 1..n)
n를 반복 가능한 무언가로 바꾼다. 1..n 1부터 n까지 반복한다.
return 와 if
return은 함수의 실행을 즉시 종료하고 값을 반환한다. 따라서 return이 if 문 앞에 오면, 조건에 따라 반환 여부를 결정하는 것이 아니라 즉시 반환하게 되어 루프의 실행이 중단된다.
for (i in 1..n)
{
if (i % 2 == 0)
{
return i // 이 경우 첫 번째 짝수를 만나면 함수가 종료되고 값을 반환합니다.
}
}
//만약 이 코드를 원하지 않으면 return문을 루프 밖으로 빼야한다.
for (i in 1..n)
{
if (i % 2 == 0)
}
return i
return와 when
if와 달리 when는 구문 자체가 결과를 반환하는 표현식으로 사용될 수 있다.
아래 코드처럼, when 구문이 angle를 평가하고 해당하는 조건에 맞는 값을 반환한다. when블록이 끝난 후에 최종적으로 반환된 값을 return이 반환하게 된다.
return when(angle)
{
in 1..89 -> 1
90 -> 2
in 91..179 -> 3
180 -> 4
else -> 0
}