사전캠프 15일차

김재현·2024년 2월 16일

오늘은 이때까지 배운 내용에서 이해가 안된 개념과 문법을 복습하는 시간을 가져보겠습니다.

1. 변수

  • 값을 임시로 저장하는 변수인 'var'의 선언 방식에는 두가지가 있습니다.
var name = "김재현"

과 같은 방식과

var age : Int = 27

위와 같이 타입으로 선언하는 방식이 있습니다.

만약 Int(32비트 정수) 타입 변수에 다른 타입의 값이 담긴다면 컴파일 에러가 발생합니다.

가장 많이 쓰였던 데이터 타입은 Double(소수점의 값), Int(정수), String(문자열) 이렇게 세가지가 가장 많이 사용되었던것 같습니다.

  • 그 다음 읽기 전용 변수인 'val'이 있습니다.

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칸이 들어가게 됩니다.)

2. 조건문

  • 조건문에는 if, when 이 있고 반복문에 해당하는 for, while 이 있습니다.
    (while 반복문은 잘 써보지를 않아서 정확하게 언제 쓰이는지 잘 모르겠네요 ㅠㅠ)

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 문에서 비교하려면 아래와 같은 형태를 띄게 됩니다.

when (파라미터) {
    비교값1 -> {
    }
    비교값2 -> {
    }
    else -> {
    }
}
  • if 문과 when 문의 사용을 구분하는 방법은 이론은 알고 있지만 아직 저도 많이 헷갈리고 체감이 잘 안되긴 합니다.

먼저 if 문은 범위가 넓고 값을 특정할 수 없을 경우 사용하는 것이 바람직하고 when 문은 범위가 제한되고 값도 특정할 경우 사용하는 것이 바람직합니다.

예시로 요일과 연도를 들어보면 요일은 (월, 화, 수, 목, 금, 토, 일) 7개로 범위가 제한적이고 개수가 많지 않습니다. 이럴 때는 when 문을 사용하는 것이 낫고 연도는 범위를 한정할 수 없고 개수가 너무 많기 때문에 이럴 때는 if 문이 낫습니다.

ex)

when (요일) {
    월 -> 영어 공부를 합니다.
    화 -> 자전거 모임이 있습니다.
    수 -> 친구를 만납니다.
    목 -> 피아노를 칩니다.
    금 -> 코딩 공부로 밤을 세웁니다.
    토 -> 빨래를 합니다.
    else -> 집 청소를 합니다.
}

(위 문장을 if 문으로 정리하면)

if (요일 == 월) {
    영어 공부를 합니다.
} else if (요일 == 화){
    자전거 모임이 있습니다.
} else if (요일 == 수){
    친구를 만납니다.
} else if (요일 == 수){
    피아노를 칩니다.
} else if (요일 == 목){
    코딩 공부로 밤을 세웁니다.
} else if (요일 == 수){
    빨래를 합니다.
} else {
    집 청소를 합니다.
}

(상당히 복잡하고 힘들어집니다.)

그러므로 간단한 정보에는 when 문을 사용하는 것이 더 좋은 방법인 것 같습니다!

0개의 댓글