코틀린 프로그래밍 (1)에서 배운 개념을 적용하여 실습을 진행해보자.
▷ 실습: 텍스트 RPG 게임 틀 만들어보자 val gameTitle = "미지의 섬 탐험"
var playerName = "탐험가 데레스"
var playerAge = 16
var playerSkill = "박쥐날개 글라이더"
println("${gameTitle}에 오신 것을 환영합니다")
println("탐험가의 정보는 다음과 같습니다.")
println("이름: ${playerName}님입니다.")
println("나이: ${playerAge}살입니다.")
println("특기: ${playerSkill}입니다.")
println("이제 미지의 섬을 탐험하러 떠날 준비가 되셨습니까?")
// 이후 각종 이벤트 및 선택지 등을 구현하여 게임의 완성도를 높일 수 있다.
위의 코드에서는 "미지의 섬 탐험"이라는 게임 제목과 탐험가의 이름, 나이, 특기를 변수로 저장하였다. 이 정보를 출력한 후, 향후 게임에서 시나리오와 선택지 등을 확장하여 완성도 높은 게임을 만들 수 있다.
연산자의 종류
▷ 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 연산자 변수 score1, score2 두 개를 사용하고 각각을 변경하며 다양한 연산자로 계산하여 출력하는 예시.
var score1 = 50
var score2 = 20
// 덧셈 연산자
var sumResult = score1 + score2
println("score1 + score2는 ${sumResult} 입니다.") // 뺄셈 연산자
var subtractResult = score1 - score2
println("score1 - score2는 ${subtractResult} 입니다.") // 곱셈 연산자
var multiplyResult = score1 score2
println("score1 score2는 ${multiplyResult} 입니다.") // 나눗셈 연산자
var divideResult = score1 / score2
println("score1 / score2는 ${divideResult} 입니다.") // score2를 15로 변경
score2 = 15
// 나머지 연산자
var modResult = score1 % score2
println("score1 % score2의 나머지는 ${modResult} 입니다.")
이 코드에서는 각 변수에 대해 덧셈, 뺄셈, 곱셈, 나눗셈, 그리고 나머지 연산을 이용해 계산하고 그 결과를 출력한다. 이처럼 다양한 연산자를 활용하여 많은 계산을 할 수 있다.
▷ =를 기준으로 오른쪽에 있는 값을 왼쪽의 변수명 또는 상수명에 대입한다는 것은, 프로그래밍에서 변수 초기화나 값을 변경할 때 사용되는 기본 구조이다.
// = 기준으로
// 오른쪽: "사과"
// 왼쪽의 이름: fruit
// 즉, "사과"를 fruit 변수에 대입한다라고 읽을 수 있음
var fruit = "사과"
println("나는 ${fruit}를 좋아해")
// = 기준으로
// 오른쪽: 3.14
// 왼쪽의 이름: pi
// 즉, 3.14를 pi 상수에 대입한다라고 읽을 수 있음
val pi = 3.14
println("원주율은 ${pi}")
이 예시에서 첫 번째 구문에서 문자열 "사과"가 변수 fruit에 대입되며, 두 번째 구문에서 숫자 3.14는 상수 pi에 대입된다. 키워드 var는 변할 수 있는 값을 저장할 변수를 선언하는 데 사용되며, val 키워드는 변하지 않는 상수값을 저장할 때 사용된다.
▷ 복합 대입 연산자는 산술 연산자와 대입 연산자를 결합해서 간결하게 작성할 수 있는 방법이다. 아래 예시는 위에서 산술연산자와 대입연산자를 같이 사용하는 방법을 설명하고 있다.
var score = 100
var bonus = 20
// 산술 연산자와 대입 연산자를 분리하여 사용
// score 값에 bonus를 더하려면?
score = score + bonus
println("산술연산자와 대입연산자를 따로 사용한 결과: ${score}")
// 복합 대입 연산자 사용
// score 값에 bonus를 다시 더하려면?
score += bonus
println("복합 대입 연산자를 사용한 결과: ${score}")
// 뺄셈, 곱셈, 나눗셈 및 나머지 연산에서도 복합 대입 연산자를 사용할 수 있다.
var discount = 10
var quantity = 5
// 뺄셈: a -= b
score -= discount
// 곱셈: a = b
quantity = 2
// 나눗셈: a /= b
discount /= 2
// 나머지: a %= b
score %= discount
println("뺄셈 결과: ${score}")
println("곱셈 결과: ${quantity}")
println("나눗셈 결과: ${discount}")
println("나머지 결과: ${score}")
이 예시에서는 score, bonus, discount, quantity라는 변수를 사용하고 있으며, 각각의 변수에 값을 추가, 빼기, 곱하기, 나누기 및 나머지를 구하는 복합 대입 연산자를 적용하고 있다. 복합 대입 연산자를 사용하면 기존 변수에 대한 산술 연산과 함께 값을 갱신할 수 있어 코드를 더 간결하게 작성할 수 있다.
▷ 1을 더하거나 빼는 특수한 경우에 사용할 수 있는 연산자를 의미
(1) 첫 번째 예시
var temp = 25
var humidity = 60
// temp의 값을 1 증가시키는 방법들
// 1) 산술연산자, 대입연산자 따로 사용
temp = temp + 1
println("(temp_1): 산술,대입 연산자 따로 사용해서 1 증가 ${temp}")
// 2) 복합대입연산자 사용
temp += 1
println("(temp_2): 복합대입연산자 사용해서 1 증가 ${temp}")
// 3) 증감 연산자
temp++
println("(temp_3): 증가연산자 사용해서 1 증가 ${temp}")
println("====================================================")
// humidity의 값을 1 감소시키는 방법들
// 1) 산술연산자, 대입연산자 따로 사용
humidity = humidity - 1
println("(humidity_1): 산술,대입 연산자 따로 사용해서 1 감소 ${humidity}")
// 2) 복합대입연산자 사용
humidity -= 1
println("(humidity_2): 복합대입연산자 사용해서 1 감소 ${humidity}")
// 3) 증감 연산자
humidity--
println("(humidity_3): 감소연산자 사용해서 1 감소 ${humidity}")
이 예시에서는 temp와 humidity 변수에 대해 값을 각각 1씩 증가시키고 감소시키는 세 가지 방법(산술 연산자와 대입 연산자의 조합, 복합 대입 연산자, 증감 연산자)을 보여주고 있다. 증감 연산자를 사용하면 코드를 간결하게 작성할 수 있다.
(2) 두 번째 예시
var a = 10
var b = 20
var c = 30
// 후위연산자는 println 연산이 실행된 후에 증가
println(a++) // 10 출력 (증가 전의 값)
println(a) // 11 출력 (증가 후의 값)
// 전위연산자는 println 연산이 실행되기 전에 증가
println(++b) // 21 출력 (증가 후의 값)
println(b) // 21 출력 (현재 값)
c++ // 후위연산자, c 값을 1 증가 (값은 31이 된다.)
println(c) // 31 출력 (증가 후의 값)
++c // 전위연산자, c 값을 먼저 1 증가 (값은 32가 된다.)
println(c) // 32 출력 (증가 후의 값)
이 예시에서 변수 a, b, c에 대해 전위와 후위 증감 연산자를 사용한 결과를 보여준다. 이를 통해 전위 및 후위 연산자가 다른 연산과 함께 사용되었을 때 어떻게 작동하는지 이해할 수 있다. 전위 연산자의 경우 연산을 수행하기 전에 값을 증가시키며, 후위 연산자의 경우 연산이 수행된 후에 값을 증가시킨다.
▷ 비교 연산자는 두 개의 변수나 상수의 관계나 값을 비교하는 데 사용하는 연산자이다. 이들 연산자는 논리 연산자 또는 관계 연산자라고도 하며, 결과는 참(True) 또는 거짓(False)이기 때문에 불린(boolean) 자료형과 함께 사용됩니다. 여기에서는 >, >=, <, <=, ==, != 연산자를 살펴보자.
(1) 첫 번째 예시
// 숫자를 비교할 변수 설정
val x = 15
val y = 9
// x가 y보다 큰지 비교
val isGreaterThan = x > y
// x가 y보다 작은지 비교
val isLessThan = x < y
// x와 y가 같은지 비교
val isEqual = x == y
// x와 y가 다른지 비교
val isNotEqual = x != y
println("x가 y보다 큰가요? $isGreaterThan")
println("x가 y보다 작은가요? $isLessThan")
println("x와 y가 같은가요? $isEqual")
println("x와 y가 다른가요? $isNotEqual")
이 예시에서는 두 개의 변수 x와 y를 비교하여 비교 연산자를 사용한 결과를 출력한다. 이를 통해 주어진 숫자 간의 관계나 값이 참(True) 또는 거짓(False)인지 평가할 수 있다.
(2) 두 번째 예시
// 사과의 가격과 오렌지의 가격을 설정
val applePrice = 1200
val orangePrice = 1000
// 사과의 가격이 오렌지의 가격보다 비싼지 확인
val isAppleMoreExpensive = applePrice > orangePrice
// 오렌지의 가격이 사과의 가격과 같은지 확인
val isOrangePriceEqual = applePrice == orangePrice
println("사과 가격이 오렌지 가격보다 비싼가요? ${isAppleMoreExpensive}")
println("오렌지 가격이 사과 가격과 같나요? ${isOrangePriceEqual}")
이 예시에서는 사과와 오렌지의 가격을 비교하여, 사과의 가격이 오렌지의 가격보다 비싼지와 오렌지의 가격이 사과의 가격과 같은지를 확인하고 있다. 결과는 참(True) 또는 거짓(False)로 출력된다. 이를 통해 주어진 가격과 기준치를 비교할 수 있다.
(3) 세 번째 예시
val normalTemperature = 36.5
val myTemperature = 36.4
val friendTemperature = 36.6
val siblingTemperature = 37.0
val isMyTemperatureNormal = myTemperature == normalTemperature
val isFriendTemperatureNormal = friendTemperature == normalTemperature
val isSiblingTemperatureNormal = siblingTemperature == normalTemperature
println("산하온도 기준은 ${normalTemperature}도 입니다.")
println("온도 체크를 시작합니다.")
println("======== 온도 체크 중 ========")
println("내 체온은 ${myTemperature}도이다. 정상인가요? $isMyTemperatureNormal")
println("친구의 체온은 ${friendTemperature}도이다. 정상인가요? $isFriendTemperatureNormal")
println("형제의 체온은 ${siblingTemperature}도이다. 정상인가요? $isSiblingTemperatureNormal")
이 예시에서는 기준 몸무게인 4.5kg와 여러 고양이의 몸무게를 비교하여 이상적인 몸무게인지 확인하고 있다. 결과는 참(True) 또는 거짓(False)로 출력된다. 이를 통해 각 고양이의 몸무게가 기준치와 일치하는지 비교해볼 수 있다.
'앱개발 > 안드로이드' 카테고리의 다른 글
[Kotlin] 실습. 키오스크 프로그래밍 구현해보자. (0) | 2024.03.09 |
---|---|
[Kotlin] 01. 안드로이드와 코틀린 프로그래밍 (0) | 2024.03.09 |