오늘은 이때까지 배운 내용에서 이해가 안된 개념과 문법을 복습하는 시간을 가져보겠습니다.
var name = "김재현"
과 같은 방식과
var age : Int = 27
위와 같이 타입으로 선언하는 방식이 있습니다.
만약 Int(32비트 정수) 타입 변수에 다른 타입의 값이 담긴다면 컴파일 에러가 발생합니다.
가장 많이 쓰였던 데이터 타입은 Double(소수점의 값), Int(정수), String(문자열) 이렇게 세가지가 가장 많이 사용되었던것 같습니다.
val은 한 번 입력된 값은 변경할 수 없고 변하지 않는 값을 미리 지정해두고 필요할 때 다른 값과 조합해서 사용할 수 있지만 변경할 수는 없습니다.
(val로 정의된 변수의 값을 변경하려고 하면 위와 같은 에러가 발생합니다.)
클래스 네이밍 컨벤션(명명 규칙)은 캐멀 케이스(Camel Case)를 사용하는데 단어의 첫 글자를 대문자로 표기하는 것을 이야기합니다. ex)-> Class MainActivity
(함수명과 변수명도 새로운 단어의 첫 글자는 대문자로 표기합니다.)
소문자를 사용하는 스네이크 케이스도 있으므로 개인 선호도에 따라 선택하면 되지만 캐멀 케이스나 스네이크 케이스 중 한 가지로만 일관성있게 프로젝트를 작성해야 합니다.
class MainActivity{
var newVariable = 50
fun on_create_activity(){
var variable = 10
Log.d("BasicSyntax", "변수의 값은 $variable 입니다.")
}
}
(예시를 가져왔는데 새로운 블록이 시작되고 일반적으로 맨 앞에 공백 4칸을 들여쓰고 그 다음 새로운 코드 블록에도 4칸 더 들여쓴 공백 8칸이 들어가게 됩니다.)
if
if 문의 조건식에서는 비교 연산자와 논리 연산자를 사용한 조건식만 사용 가능하며 결과는 true와 false로 나타납니다.
비교 연산자
> : 왼쪽이 크면 true, 작으면 false 반환
< : 왼쪽이 작으면 true, 크면 false 반환
>= : 왼쪽이 크거나 같으면 true, 아니면 false
<= : 왼쪽이 작거나 같으면 true, 아니면 false
== : 2개 항의 값이 같으면 true, 아니면 false
!= : 2개 항의 값이 다르면 true, 아니면 false
&& : 논리곱. 두 항이 모두 true일 때에는 true, 아니면 false
|| : 논리합. 두 항 중 하나의 항이 true일 때에는 true, 아니면 false
! : 부정 단항 연산자. true를 false로, false를 true로 바꿈
if 문의 기본적인 형태는 if (조건식) {} 입니다.
조건식이 참일 경우 실행되는 if와 거짓일 경우 실행되는 else를 같이 사용할 때는 아래와 같은 형태로 나타냅니다.
if (조건식) {
} else {
}
when
when (파라미터) {
비교값 -> {
}
}
만약 여러 개의 값을 하나의 when 문에서 비교하려면 아래와 같은 형태를 띄게 됩니다.
when (파라미터) {
비교값1 -> {
}
비교값2 -> {
}
else -> {
}
}
먼저 if 문은 범위가 넓고 값을 특정할 수 없을 경우 사용하는 것이 바람직하고 when 문은 범위가 제한되고 값도 특정할 경우 사용하는 것이 바람직합니다.
예시로 요일과 연도를 들어보면 요일은 (월, 화, 수, 목, 금, 토, 일) 7개로 범위가 제한적이고 개수가 많지 않습니다. 이럴 때는 when 문을 사용하는 것이 낫고 연도는 범위를 한정할 수 없고 개수가 너무 많기 때문에 이럴 때는 if 문이 낫습니다.
ex)
when (요일) { 월 -> 영어 공부를 합니다. 화 -> 자전거 모임이 있습니다. 수 -> 친구를 만납니다. 목 -> 피아노를 칩니다. 금 -> 코딩 공부로 밤을 세웁니다. 토 -> 빨래를 합니다. else -> 집 청소를 합니다. }
(위 문장을 if 문으로 정리하면)
if (요일 == 월) { 영어 공부를 합니다. } else if (요일 == 화){ 자전거 모임이 있습니다. } else if (요일 == 수){ 친구를 만납니다. } else if (요일 == 수){ 피아노를 칩니다. } else if (요일 == 목){ 코딩 공부로 밤을 세웁니다. } else if (요일 == 수){ 빨래를 합니다. } else { 집 청소를 합니다. }
(상당히 복잡하고 힘들어집니다.)
그러므로 간단한 정보에는 when 문을 사용하는 것이 더 좋은 방법인 것 같습니다!