Y_Ding

2023.07.17 TIL (내배캠 kotlin강의 2주차) 본문

TodayILearned/Android&Kotlin

2023.07.17 TIL (내배캠 kotlin강의 2주차)

YJ_ILY 2023. 7. 17. 12:40

Kotlin

구글에서 안드로이드 앱 개발할 때 권장하는 언어

Java의 단점을 개선

  •  자료형을 명시하지 않아도 추론할 수 있는 기능 제공
  • 간결한 코드 작성 가능
  • Null예외를 컴파일 시점에 미리 방지 가능, 안정적인 프로그램 만들 수 있음

 

특징

  • JVM 언어와 100% 호환 가능한 프로그래밍 언어
  • 직관적이고 간결한 문법
  • Null 처리에 높은 안정성
  • 간결하고 안전하게 비동기 처리 수행 가능

 

유용한 단축키

  • Ctrl + Y : 한줄 삭제
  • Ctrl + /  : 주석
  • Ctrl + Shift + F : 전체 찾기
  • Ctrl + A : 코드블록 전체

 

코딩 컨벤션

  • 다른 사람들도 이해하기 쉽게 코드를 작성하는 규칙

 

코딩 컨벤션의 필요성

  • 코드의 가독성이 증가해서 나중에 봐도 쉽게 이해 가능
  • 유지보수가 용이
  • 효율적인 협업 가능

표기법

  • camelCase 표기법 : 주로 변수, 메소드 이름을 지정할 때 (ex. seoulFood)
  • snake_case 표기법 : 주로 상수 이름 지정할 때 (ex. seoul_food)
  • PascalCase 표기법 : 주로 클래스 이름을 지정할 때 (ex. SeoulFood)

 

자료형

  • 프로그램의 모든 정보
  • 자료를 저장할 수 있는 적절한 형태
  • 정수 : Long, Int, Short, Byte,
  • 실수(소수) : Double, Float,
  • 하나의 문자 : Char
  • 논리(참 또는 거짓) : Boolean
  • 문자열 : String
  • 8비트 당 1바이트
  • 컴퓨터의 하드웨어 사양은 한정적이기 때문에 자료형이 중요!

 

변수

  • ex) 식당 예약 프로그램을 만들 때에는 매일 예약인원을 변수로 둬야겠다
  • 키워드 var 사용
  • 변하는 것

 

상수

  • ex) 우리 회사 이름을 넣어서 프로그램을 만들어야하는데 회사 이름은 상수로 해야지
  • 바뀌지 않는 것
  • 키워드 val 사용

 

연산자

산술 연산자

  • 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/), 나머지(%)

대입 연산자(=)

  • =을 기준으로 오른쪽에 있는 값을 왼쪽의 변수나 상수에 대입

 

복합대입 연산자

  • 산술연산자와 대입연산자를 한번에 사용할 수 있는 연산자

ex) num1 += 10  // num1 = num1 + 10 과 같은 뜻

=의 왼쪽에 써주어야 함

 

증감 연산자

  • 1을 더하거나 빼는 특수한 경우에 사용할 수 있는 연산자

ex) var num 1 = 30 / num1++ 는 30에 1을 더한다는 뜻 

변수의 왼쪽에 위치하면 전위 연산자(++num1), 오른쪽에 위치하면 후위 연산자(num2++)

단독적으로 사용하면 결과값이 동일하지만, 다른 연산과 같이 사용했을 때 차이 발생

	var num1 = 10
	var num2 = 20
	var num3 = 30
    
    // 후위연산자는 println연산을 실행후에 증감해요
    println(num1++)
    println(num1)
    
    10 , 11 => print 후에 1을 증가하기 때문에
    
    // 전위연산자는 println연산 실행전에 증감해요
    println(++num2)
    println(num2)
    
    21, 21 => print 전에 이미 1을 증가하기 때문에
    
    num3++
    println(num3)
    
    ++num3
    println(num3)
    
    31, 32 => 단독으로 사용했기 때문에

비교 연산자(=로직 연산자)

  • 두개의 변수 또는 상수의 관계나 값을 비교할 때 사용
  • 참 또는 거짓이기 때문에 boolean 자료형과 함께 사용
  • >, >=, <, <=, ==, !=

 

조건식(if, else, when)

활용 예시

특정 이름을 가진 사람일 때 축하메세지 띄우기

일반게임과 랭크게임을 선택해서 게임방 만들기

티켓 100개가 매진되면 더 이상 구매 불가 알림창 띄우기

비가오면 잔잔한 음악이 재생되도록 하기

기말고사 평균점수를 구간별로 나눠서 A,B,C,D 등급 매기기

*Tip! else if가 많아질 땐 when을 사용하는 것이 가독성이 더 좋음

        if는 최악의 경우에 모든 조건을 비교한다는 단점이 있음

// 조건식이 true일때 중괄호 안의 코드를 실행
if(조건식) {
	 // 실행할 코드
}

// 둘 중 한개의 코드만 실행
if(조건식) {
	// 조건식이 true일때 실행할 코드
} else {
  // 조건식이 false일때 실행할 코드
}
when(변수 또는 상수){
	값1 -> {
    	// 변수 또는 상수가 값1일 때 실행할 코드
    }
    값2 -> {
    	// 변수 또는 상수가 값2일 때 실행할 코드
    }
    in 값3..값9 {
    	// 변수 또는 상수가 값3~값9 사이일 때 실행할 코드
    }
    else {
    	// 변수 또는 상수가 위 조건에 해당되지 않을 때 실행할 코드
    }
}

반복문(for, while)

논리에 맞는 코드를 반복해서 실행

활용 예시

매일 10시에 a,b,c의 주식가격 출력

매일 퇴근전에 검색 -> 엑셀에 저장 -> 메일전송하는 것을 코드로 반복

전화번호부에서 이름이 "참새"인 사람을 찾을때까지 한명씩 조회,비교

상자에서 사료를 꺼내 고양이에게 10번 먹여주기

// 리스트(묶음)에서 하나의 요소들을 반복해서 가져오는 경우
for(요소 in 리스트) {
	  소스코드 (로직)
}

// 숫자의 범위를 기준으로 반복하는 경우
// 시작값이 0이고, 마지막값이 5라면 인덱스는 0,1,2,3,4이므로 총 5번 반복
// until을 생략해서 시작값..마지막값으로 사용할수도 있음
for(인덱스 in 시작값 until 마지막값) {
		소스코드 (로직)
}
// 코틀린의 while 반복문은 조건식, 증감식을 이용

while(조건식) {
		소스코드 (로직)
		증감식
}

break는 가장 가까운 반복문에서 탈출하고 다음 블록으로 넘어감

continue는 이후의 코드를 실행하지 않음

 

0<= until < 9  : 0이상 9 미만

0<= .. <= 9 : 0이상 9 이하