본문 바로가기

개발자/kotlin 코틀린

kotlin 03. 제어문과 함수 기초

반응형

 

 

if( )와 else의 중첩

 

fun main(args: Array<String>): Unit
{
	val score = 88

	if (score >= 90)
	{
		println('A')
	}
	else
	{
		if (score >= 80)
		{
			println('B')
		}
		else
		{
			if (score >= 70)
			{
				println('C')
			}
			else
			{
				println('F')
			}
		}
	}
}

결과

B

 

너무 중첩되어 있어 보기 힘든 코드가 되었다. 대괄호 안의 문장이 한 개면 { }를 생략할 수 있고 if~ else 구문은 if ~ else if~ 구문으로 바꿀 수 있으니, 필요 없는 문장을 지워 단순하게 만들면 다음과 같다.

 

fun main(args: Array<String>): Unit
{
	val score = 88

	if (score >= 90)
	{
		println('A')
	}
	else if (score >= 80)
		println('B')
	else if (score >= 70)
		println('C')
	else
		println('F')
}

결과 

B

 

 

if-else를 표현식으로 사용하기

 

fun main(args: Array<String>): Unit
{
	val value: Int = if (10 > 5)
	{
		println("10은 5보다 크다.")
		10
	}
	else
	{
		println("10은 5보다 크지 않다.")
		5
	}

	println(value)
}

결과

10은 5보다 크다.
10

 

흐름 제어-조건문 when( )

 

fun main(args: Array<String>): Unit
{
	val score = 64

	when (score / 10)
	{
		6 ->
		{
			println('D')
		}

		7 ->
		{
			println('C')
		}

		8 ->
		{
			println('B')
		}

		9, 10 ->
		{
			println('A')
		}

		else ->
		{
			println('F')
		}
	}

	println("test")
}

결과

D
test

 

위 코드를 중괄호를 생략하고 깔끔하게 옮기면 다음과 같다.

 

fun main(args: Array<String>): Unit
{
	val score = 64

	when (score / 10)
	{
		6 -> println('D')
		7 -> println('C')
		8 -> println('B')
		9, 10 -> println('A')
		else -> println('F')
	}

	println("test")
}

결과

D
test

 

 

when을 표현식으로 사용하기

 

fun main(args: Array<String>): Unit
{
	val score = 95

	val grade: Char = when (score / 10)
	{
		6 -> 'D'
		7 -> 'C'
		8 -> 'B'
		9, 10 -> 'A'
		else -> 'F'
	}

	println(grade)
}

결과

A

 

흐름 제어-반복문 while

 

fun main(args: Array<String>): Unit
{
	var i = 1

	while (i < 10)
	{
		println(i)
		i += 1
	}
}

결과

1
2
3
4
5
6
7
8
9

 

흐름 제어-반복문 do-while

 

fun main(args: Array<String>): Unit
{
	var i = 1

	do
	{
		println("실행됨")
	} while (i == 0)
}

결과

실행됨

 

흐름 제어 continue

 

fun main(args: Array<String>): Unit
{
	var i = 0

	while (i < 10)
	{
		i += 1

		// 짝수이면
		if (i % 2 == 0)
			continue // continue 아래의 문장들을 모두 skip 한다.

		println(i)
	}
}

결과

1
3
5
7
9

 

흐름 제어 break

 

fun main(args: Array<String>): Unit
{
	var i = 0

	while (true)
	{
		i += 1

		if (i >= 5)
			break // 이 문장이 실행되는 순간 while 블록을 탈출한다.

		println(i)
	}
}

결과

1
2
3
4

 

레이블(Label)

 

fun main(args: Array<String>): Unit
{
	var x = 0
	var y = 0

	outer@ while (x <= 20)
	{
		y = 0
		while (y <= 20)
		{
			if (x + y == 15 && x - y == 5)
				break@outer
			y += 1
		}
		x += 1
	}

	println("x: $x, y: $y")
}

결과

x: 10, y: 5

 

함수(Function) 

 

fun main(args: Array<String>): Unit
{
	println(myFunction())
	println(myFunction() + 10)
}

fun myFunction(): Int
{
	val a = 3
	val b = 6
	println("a: " + a + ", b: " + b)
	return a + b
}

결과

a: 3, b: 6
9
a: 3, b: 6
19

 

아래는 함수 블록의 문장이 하나일 경우 줄이는 방법을 보여준다. 참고하길 바란다.

 

fun fuction(): Double
{
	return 3.0 + 7
}

한 줄로 줄이면

func fuction(): Double = 3.0 + 7

함수 반환 타입을 생략하면(수식이 Double 임을 추론한다.) 

func fuction() = 3.0 + 7

 

 

kotlin 03. 제어문과 함수 기초

 

 

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

당신의 성공을 위해 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩