728x90
- 유용한 단축키
- 자료형
- 변수와 상수
- 연산자의 종류
- 조건식
- 반복문
- 실습
초보자를 위한 유용한 단축키(Window기준)
// 라인 드래그
Shift + 방향키<상, 하, 좌, 우>
// 라인 지우기
Ctrl + Y
// 주석 처리
Ctrl + /
// 자동 포커싱 - 소스코드 작성 중, 다른 작업 때문에 작업하던 라인을 찾기 힘들 때
ESC
// 프로젝트 내부에서 사용중인 모든 단어들의 위치 탐색
Ctrl + Shift + F
// 복사, 붙여넣기
Ctrl + C [복사]
Ctrl + V [붙여넣기]
Ctrl + D [라인 복사 후 생성]
// [최상단 이동]
Home
// [최하단 이동]
End
자료형
- 프로그램의 모든 정보를 데이터 또는 자료라고 한다
- 자료를 저장할 수 있는 적절한 형태를 자료형이라고 정의한다
타입 | 크기 | 특징 |
Long | 64비트 | 정수 |
Int | 32비트 | 정수 |
Short | 16비트 | 정수 |
Byte | 8비트 | 정수 |
Double | 64비트 | 실수(소수) |
Float | 32비트 | 실수(소수) |
Char | 16비트 | 하나의 문자 |
Boolean | 8비트 | 논리(참 or 거짓) |
String | X | 문자열 |
자료형이 중요한 이유
컴퓨터의 제한적인 하드웨어 사양을 효율적으로 사용하기 위해서 중요하다
- 몸무게를 소수점까지 표현하고 싶은데 Int로는 할 수 없으니 적절하게 Double 사용하기
- 32비트(Int)로도 충분한데 64비트(Long)에 정수형을 저장한 경우(낭비)
- 8비트(Byte)로도 충분한데 32비트(Int)에 정수를 저장한 경우(낭비)
변수와 상수
변수(var) - 변할 수 있는 수
// var num1:Int = 1
// var 변수이름:자료형(생략가능) = 값
// 값을 특정 자료형을 저장할 수 있는 변수이름에 대입한다
var num1 = 1
println("num1 변수에는 ${num1}이 들어있다")
num1 = 5
println("변경한 num1 변수에는 ${num1}이 들어있다")
// 출력
num1 변수에는 1이 들어있다
변경한 num1 변수에는 5이 들어있다
상수(val) - 변할 수 없는 수
val num1 = 1
println("내 첫변수 num1 변수에는 ${num1}이 들어있어")
// num1은 var이 아니라 val이기때문에 들어있는 값을 변경하지 못함
num1 = 5
println("변경한 num1 변수에는 ${num1}이 들어있다")
// 출력X 에러 발생
// Val cannot be reassigned 에러 발생!!
연산자의 종류
- 산술 연산자
덧셈, 뺄셈, 곱셉, 나눗셈, 그리고 나머지 연산을 가능하게 하는 연산자
var num1 = 30
var num2 = 10
// 덧셈 연산자(+)사용해서 num1과 num2를 더한후에 plusResult에 대입
var plusResult = num1 + num2
println("num1 + num2 = ${plusResult}")
// 뺄셈 연산자(-)사용해서 num1에서 num2를 뺀후에 minusResult에 대입함
var minusResult = num1 - num2
println("num1 - num2 = ${minusResult}")
// 곱셈 연산자(*)사용해서 num1과 num2를 곱한후에 multipleResult에 대입
var multipleResult = num1 * num2
println("num1 * num2 = ${multipleResult}")
// 나눗셈 연산자(/)사용해서 num1에서 num2를 나눈후에 divideResult에 대입
var divideResult = num1 / num2
println("num1 / num2 = ${divideResult}")
// num2를 10에서 7로 변경
num2 = 7
// 나머지 연산자(%)사용해서 num1에서 num2를 나눈 나머지를 modResult에 대입
var modResult = num1 % num2
println("num1 % num2는 정수로 ${modResult}")
// 출력
num1 + num2 = 40
num1 - num2 = 20
num1 * num2 = 300
num1 / num2 = 3
num1 % num2는 정수로 2
- 대입 연산자
변수나 상수를 만들 때 사용한 =를 대입연산자라고 한다
=을 기준으로 오른쪽에 있는 값을 왼쪽의 변수명 또는 상수명에 대입한다고 한다
// = 기준으로
// 오른쪽: "참새"
// 왼쪽의 이름: name
// 즉, "참새"를 name변수에 대입한다
var name = "참새"
println("내 이름은 ${name}")
// = 기준으로
// 오른쪽: 10
// 왼쪽의 이름: age
// 즉, 10을 age상수에 대입한다
val age = 10
println("내 나이는 ${age}")
// 출력
내 이름은 참새
내 나이는 10
- 복합대입 연산자
산술연산자와 대입연산자를 한번에 사용할 수 있는 연산자
var num1 = 30
var num2 = 10
// 산술연산자와 대입연산자를 따로 사용
// num1의 값을 10 증가시켜서 40을 만들고 싶다면?
num1 = num1 + 10
println("산술, 대입 따로 적용한 결과 ${num1}")
// 복합대입연산자를 사용
// num2의 값을 10 증가시켜서 20을 만들고 싶다면?
num2 += 10
println("산술, 대입 따로 적용한 결과 ${num2}")
// 뺄셈, 곱셈, 나눗셈, 나머지연산도 동일하게 사용가능
// 뺄셈: a-=b
// 곱셈: a*=b
// 나눗셈: a/=b
// 나머지: a%=b
// 출력
산술, 대입 따로 적용한 결과 40
산술, 대입 따로 적용한 결과 20
- 증감 연산자
1을 더하거나 빼는 특수한 경우에 사용할 수 있는 연산자
var num1 = 30
var num2 = 10
// num1의 값을 1 증가시키고 싶다면?
// 1) 산술연산자, 대입연산자 따로 사용
num1 = num1 + 1
println("(num1_1): 산술, 대입 연산자 따로 사용해서 1증가 ${num1}")
// 2) 복합대입연산자 사용
num1 += 1
println("(num1_2): 복합대입연산자 사용해서 1증가 ${num1}")
// 3) 증감 연산자
num1++
println("(num1_3): 증가연산자 사용해서 1증가 ${num1}")
println("====================================================")
// num2의 값을 1 감소시키고 싶다면?
// 1) 산술연산자, 대입연산자 따로 사용
num2 = num2 - 1
println("(num2_1): 산술, 대입 연산자 따로 사용해서 1감소 ${num2}")
// 2) 복합대입연산자 사용
num2 -= 1
println("(num2_2): 복합대입연산자 사용해서 1감소 ${num2}")
// 3) 증감 연산자
num2--
println("(num2_3): 증가연산자 사용해서 1감소 ${num2}")
// 출력
(num1_1): 산술,대입 연산자 따로 사용해서 1증가 31
(num1_2): 복합대입연산자 사용해서 1증가 32
(num1_3): 증가연산자 사용해서 1증가 33
====================================================
(num2_1): 산술,대입 연산자 따로 사용해서 1감소 9
(num2_2): 복합대입연산자 사용해서 1감소 8
(num2_3): 증가연산자 사용해서 1감소 7
- 증감연산자는 변수의 왼쪽이나 오른쪽에 위치할 수 있다
- 변수의 왼쪽에 위치하면 전위연산자
- 변수의 오른쪽에 위치하면 후위연산자
- 단독적으로 사용하면 결과값을 동일한다
- 다른 연산과 같이 사용했을 때 차이가 발생한다
var num1 = 10
var num2 = 20
var num3 = 30
// 후위연산자는 println연산을 실행후에 증감한다
println(num1++)
println(num1)
// 전위연산자는 println연산 실행전에 증감한다
println(++num2)
println(num2)
num3++
println(num3)
++num3
println(num3)
// 출력
10
11
21
21
31
32
- 비교 연산자
두 개의 변수 또는 상수의 관계나 값을 비교할 때 사용하는 연산자
로직 연산자라고도 하며 결과는 참 or 거짓이므로 boolean자료형과 함께 사용된다
대표적으로 >, >=, <, <= , ==, != 가 있다
// 수학은 94점
var mathScore = 94
// 수학점수가 90점 초과인지 판단
var isMathHighRank = mathScore > 90
// 90점 초과라면 true (참)
// 90점 이하라면 false (거짓)
println("내 수학점수는 고등급? ${isMathHighRank}")
// 출력
내 수학점수는 고등급? true
========================================================================================
// 영어는 60점
var englishScore = 60
// 국어점수가 60점 이상인지 판단
var isEnglishMiddleRank = englishScore >= 60
// 60점 이상이라면 true (참)
// 60점 미만이라면 false (거짓)
println("내 영어점수는 턱걸이로 중위권? ${isEnglishMiddleRank}")
// 출력
내 영어점수는 턱걸이로 중위권? true
========================================================================================
var baseAge = 20
var myAge = 20
var teacherAge = 50
var babyAge = 7
// myAge와 baseAge가 같은지 판단 -> true
var isMyAgePass = myAge == baseAge
// teachAge와 baseAge가 같은지 판단 -> false
var isTeacherAgePass = teacherAge == baseAge
// babyAge와 baseAge가 다른지 판단 -> true
var isBabyAgeNoPass = babyAge != baseAge
println("어서오세요")
println("이번 이벤트는 ${baseAge}살만 참여할 수 있습니다!")
println("================신분증 검사중================")
println("내 나이는 ${myAge}이니까 ${isMyAgePass}다!")
println("선생님 연세는 ${teacherAge}니까 ${isTeacherAgePass}네요.. 미안해요!")
println("${babyAge}살은 참여할수 없는게 맞아요! ${isBabyAgeNoPass}")
// 출력
어서오세요
이번 이벤트는 20살만 참여할 수 있습니다!
================신분증 검사중================
내 나이는 20이니까 true다!
선생님 연세는 50니까 false네요.. 미안해요!
7살은 참여할수 없는게 맞아요! true
조건식
코틀린에서는 조건에 따라 프로그램을 실행한다
if, else, when 키워드를 활용해서 조건을 관리하며 연산자들과 함께 사용한다
- if, else의 구조
// 조건식은 앞에서 배운 비교 연산자를 사용한다
// 즉, 조건식 자리에는 true 또는 false의 결과가 들어갑니다
// 조건식이 true일때 중괄호 안의 코드를 실행합니다
if(조건식) {
// 실행할 코드
}
// 둘 중 한개의 코드만 실행된다
if(조건식) {
// 조건식이 true일때 실행할 코드
} else {
// 조건식이 false일때 실행할 코드
}
- when의 구조
when(변수 또는 상수){
값1 ->{
// 실행할 코드
}
값2 ->{
// 실행할 코드
}
else ->{
// 실행할 코드
}
}
- else if 가 많아질 때는 when을 사용하는게 가독성이 좋다
- if는 최악의 경우에 모든 조건을 비교한다는 단점을 고려해야 한다
반복문
논리에 맞게 코드를 반복해서 실행한다
코틀린에서는 for, while 키워드를 활용해서 반복적인 로직을 관리하며 연산자와 함께 사용한다
- for의 구조
// 코틀린의 for 반복문은 다양한 형태가 존재한다
// 리스트(묶음)에서 하나의 요소들을 반복해서 가져오는 경우입니다
for(요소 in 리스트){
소스코드 (로직)
}
// 숫자의 범위를 기준으로 반복하는 경우
// 시작값이 0이고, 마지막값이 5라면 인덱스는 0,1,2,3,4이므로 총 5번 반복한다
// until을 생략해서 시작값..마지막값으로 사용할수도 있다
for(인덱스 in 시작값 until 마지막값){
소스코드 (로직)
}
- while의 구조
// 코틀린의 while 반복문은 조건식, 증감식을 이용한다
while(조건식){
소스코드 (로직)
증감식
}
- break는 가장 가까운 반복문에서 탈출하고 다음 블록으로 넘어간다
- continue는 이후의 코드를 실행하지 않는다
var infos = arrayOf("꿩", "닭", "참새", "오목눈이", "공작새")
for(info in infos) {
if(info == "참새"){
println("찾았다 참새!")
break
} else{
continue
}
}
// 출력
찾았다 참새!
728x90
'코틀린(Kotlin) > TIL' 카테고리의 다른 글
[코틀린(Kotlin)] Intent, findViewById (0) | 2023.12.11 |
---|---|
[깃허브(GitHub)] 깃허브를 활용하는 협업(Branch, Pull Requests) (0) | 2023.12.04 |
[Kotlin 문법] 코틀린 심화 (0) | 2023.12.01 |
[Kotlin 문법] 객체지향 프로그래밍의 심화 (0) | 2023.11.30 |
[Kotlin 문법] 객체지향 프로그래밍의 기초 (0) | 2023.11.28 |