일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 달고나bof
- 백준알고리즘
- 딥러닝파이썬
- 신경망파이썬
- 8086CPU레지스터
- 정보보안
- 보안
- 스트림암호
- c언어
- 밑바닥부터시작하는딥러닝
- BOF
- 머신러닝
- 파이썬신경망
- 신경망 학습
- 버퍼오버플로우
- C언어알고리즘
- C알고리즘
- BOJ
- 소프트맥스함수
- C언어 알고리즘
- 항등함수
- 딥러닝
- 파이썬
- 활성화함수파이썬
- FTZlevel10
- 신경망
- 알고리즘
- 인공지능
- 백준
- 신경망구현
- Today
- Total
HeeJ's
[01] 안드로이드 Kotlin 사전 공부 (1) 본문
Kotlin
- 자바와 100% 상호 호환 -> 자바 코드를 완전히 대체 가능
- 자바보다 문법이 간결함
- 데이터 형식 선언 없이 변수를 선언할 수 있음
변수와 데이터 형식
fun main() {
var var1 : Int = 10
var var2 : Char = '안'
var var3 : String = "안녕하세요"
println(var1)
println(var2)
println(var3)
}
//출력 결과
// 10
// 안
// 안녕하세요
코틀린에서는 ;(세미콜론)을 사용하지 않는다.
char는 한 글자만 지원하고, 문자열을 사용하고 싶을 땐 String을 사용한다.
fun main(){
var var1 = 10
var var2 = '안'
var var3 = "안녕하세요"
println(var1)
println(var2)
println(var3)
}
// 출력 결과
// 10
// 안
// 안녕하세요
* 암시적 선언
: 변수의 데이터 형식을 지정하지 않고, 대입되는 값에 따라 자동으로 변수의 데이터 형식 지정
단, 초기화를 하지 않는 경우, 변수의 데이터 형식을 명시해야 함
var myVar : Int = 10
myVar = 20
val myVal : Int = 10
myVal = 20 // 오류
* val (value)
- 상수 선언
- var이 아닌 val을 사용하는 경우, 변수 선언과 동시에 값을 대입하거나, 한 번만 값을 대입할 수 있다.
데이터 형식 변환
var var1 : Int = "1024".toInt()
var var2 : Double = "10.2".toDouble()
- 캐스팅 연산자 사용
- Kotlin에서 제공하는 toInt(), toFloat() 등의 정적 메소드 사용
null 사용
var notNull : Int = null //오류
var Null : Int? = null
- null을 대입하고 싶다면 데이터 형식 뒤에 ?를 붙여야 대입 가능
null 값을 사용하지 않는 경우
var ary = ArrayList<int>(10) //10개의 배열 리스트
ary!!.add(1) // 값 1을 추가
ary!!.add() // 오류
: ary에는 null이 들어가면 오류 발생
when
when (식) {
값1 -> // 값1이면 실행
값2 -> // 값2면 실행
else -> // 해당하는 부분이 없으면 실행
}
- 다중 분기로 사용
cf. case문
ex.
fun main(){
var count = 88
var jumsu : Int = (count / 10) * 10
when (jumsu) {
100 -> println("합격(장학생)")
90 -> println("합격(장학생)")
80, 70, 60 -> println("합격")
// in 60 ... 80 -> println("합격") 으로도 표현 가능
else -> println("불합격")
}
}
배열
: 여러 개의 데이터를 하나의 변수에 저장하기 위해 사용
일차원 배열 - Array(), arrayOf(), arrayOfNulls()
var 배열명 = Array<데이터 형식>(개수, {초깃값})
var 배열명 = Array<데이터 형식>(개수) {초깃값}
//ex
var ary1 = Array<Int>(4, {0})
ary1[0] = 10
ary1[3] = 40
//arrayOf()
val ary2 = arrayOf(1,2,3,4) //정수형으로 초기화
val ary3 = arrayOf("cat","dog","lion") //문자열형으로 초기화
//arrayOfNulls()
val ary4 = arrayOfNulls<Int>(3) // Int형을 가진 크기가 3인 빈 배열 생성
이차원 배열 선언
var 배열명 = Array<배열 데이터 형식>(행 개수, {배열 데이터 형식(열 개수)})
//ex
var twoAry = Array<IntArray>(3, {IntArray)(3)})
twoAry[0][0] = 10
twoAry[1][2] = 20
배열을 선언하면서 값을 바로 대입하는 것도 가능하다.
var ary : IntArray = intArrayOf(1,2,3)
ArrayList
var ary = ArrayList<Int>(5)
ary.add(15)
ary.add(35)
// ary[0]에는 15, ary[1]에는 35가 대입
var sum = ary.get(0) + ary.get(1) // 50
반복문(for, while)
for
for (변수 in 시작..끝 step 증가량){
// 반복 실행
}
//배열의 개수만큼 반복하는 방법
for (변수 in 배열명.indicies) {
// 반복 실행
}
//배열의 모든 값을 출력하는 방법
var ary : IntArray = intArrayOf(1,2,3,4)
for (i in ary.indicies) {
println(one[i])
}
//첨자 없이 바로 배열의 값을 하나씩 처리하는 방법
for (변수 in 배열명){
//이 부분에서 변수 사용
}
// -> 배열의 내용이 하나씩 변수에 대입된 후 for문 반복
// -> 배열의 개수만큼 for문이 반복되게 됨
while
while(조건식) {
//조건식이 true인 동안 실행
}
//ex
fun main() {
var sum = 0
var i = 0
while(i < 10){
sum += i
i++
}
println("sum : $sum")
}
// sum : 55
함수
fun 함수 이름(변수명 : 자료형, 변수명 : 자료형, ... ) : 반환값 자료형 {
표현식
...
return 반환값
}
// ex
fun sum(a: Int, b: Int) : Int {
var sum = a + b
return sum
}
함수 간략하게 선언하기
//일반적 선언
fun sum (a : Int, b : Int) : Int {
return a + b
}
//간략한 선언
fun sum(a: Int, b: Int) : Int = a + b //함수가 간단할 때(한 줄)
fum sum(a: Int, b: Int) = a + b //return 타입 명시 필요X
람다식(Lambda Expression)
{ x, y -> x + y } //함수의 이름이 없음
//ex
fun main() {
var result : Int
val multi = { x: Int, y: Int -> x * y }
result = multi(10, 20)
println(result)
}
클래스와 인스턴스
클래스
- 변수와 메소드로 구성
//car 클래스 예제
class Car {
var color : String = ""
var speed : Int = 0
fun upSpeed(value : Int) {
if (speed + value >= 200 )
speed = 200
else
speed = speed + value
}
fun downSpeed(value : Int) {
if (speed - value <= 0)
speed = 0
else
speed = speed - value
}
}
fun main() {
var myCar1 : Car = Car()
myCar1.color = "빨강"
myCar1.speed = 0
var myCar2 : Car = Car()
myCar2.color = "검정"
myCar2.speed = 20
var myCar3 : Car = Car()
myCar3.color = "하양"
myCar3.speed = 30
}
생성자 추가
class Car {
var color : String = ""
var speed : Int = 0
constructor(color: String, speed : Int) {
this.color = color
this.speed = speed
}
fun upSpeed(value : Int) {
if (speed + value >= 200)
speed = 200
else
speed = speed + value
}
fun downSpeed(value : Int) {
if (speed - value <= 0)
speed = 0
else
speed = speed - value
}
}
fun main() {
var myCar1 : Car = Car("빨강", 0)
var myCar2 : Car = Car("검정", 20)
var myCar3 : Car = Car("하양", 30)
}