💻STUDY/ANDROID STUDY
[Android-Kotlin] 3주차
- 한빛미디어의 『이것이 안드로이드다 with 코틀린』 유튜브 강좌를 듣고 정리한 내용입니다
변수와 상수
Android는 객체 지향 언어인 Java에 기초하여 만들어졌기 때문에 class 밖에서 코드를 작성하는 것은 큰 의미가 없음. 따라서 Kotlin도 class 안이나 함수 안에서 코드를 작성해야.
android에서는 onCreate함수가 시작점이다. (코드를 작성하는 첫 부분)
코드가 많아지면 함수를 하나 더 추가하고 그 함수안에 코드 작성 후 호출하는 방식으로. (onCreate에서!)
package com.example.kotlinsyntaxvar
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var variable="홍길동" //값 초기화, type 특정 안했지만 앞으로 String으로 받겠다는 의미와 같은 의미.
//다른 형태의 type 넣는 것 불가능! var variable:String="홍길동" 과 같은 의미..
var variable2:String //앞으로 String 타입의 값을 받겠다는 의미
variable2="안녕하세요?"
}
}
package com.example.kotlinsyntaxvar
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//코틀린의 기본타입
//실수형
var doubleValue:Double=35.6
var floatValue:Float=123.7f //실수형 값을 입력하면 다 double로 인식. f붙여줘야함!
//정수형
var intValue:Int=123456 //int 최대 범위: 2147483647
var longValue:Long=2_147_483_647 //_로 보기 편하게 숫자 구분가능
//예전에는 int범위 최대 넘어가면 long인것을 알려주도록 알파벳 붙였어야했는데 업데이트 이후로 안해도됨.
var shorValue:Short=123
var byteValue:Byte=127 //작은 수를 표현. 잘 쓰는 일은 없음. 대부분 double, long 사용.
//문자형
var charValue:Char='a' //char은 ''로 표현해야.
var stringValue:String="문자열 길이에 상관없이 값을 입력할 수 있다. 크기를 특정할 수 없다."
//불린형
var booleanValue:Boolean=true //if문에서 분기처리할때 자주 사용.
//상수 : val 사용
val VALVALUE:Boolean=true //대부분 개발자들은 상수를 대문자로 표현.
//VALVALUE=false 와 같이 값 변경 불가능!
}
}
조건문
package com.example.kotlinsyntaxvar
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//비교연산자
var result = 1 > 2
Log.d("compare","1 >2 결과는 ${result}")
}
}
다음과 같은 출력 결과를 확인 가능하다. result에 1<2를 넣으면 출력 결과는 true로 나온다.
비교 연산자에는 <, >, <=, >=, ==, != 이 있고 수식뿐만 아니라 문자열도 같은지를 비교연산자를 이용해 확인 가능하다. (되도록 문자열비교는 잘 사용하지 않음)
package com.example.kotlinsyntaxvar
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var first=300
var second=500
var third=270
//비교연산자 <, >, >=,<=,==,!=
var result1 = first<500
Log.d("compare","첫번째 결과는 ${result1}")
var result2=second<500
Log.d("compare","두번째 결과=${result2}")
//논리연산자 : 비교연산자의 비교를 다시한번 사용하기 위해 사용
var logic1= result1 && result2 //둘 다 true인가
Log.d("compare","논리연산 && 결과=${logic1}")
var logic2= result1 || result2 //둘 중 true 인게 있는가
Log.d("compare","논리연산 || 결과=${logic2}")
var logic3=!result1
Log.d("compare","논리연산 ! 결과=${logic3}")
}
}
package com.example.kotlinsyntaxvar
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//if
var month=7
if(month>9){
Log.d("if","가을 옷을 입습니다")
}else if(month<9 && month>6){
Log.d("if","해수욕장을 갑니다")
}else{
Log.d("if","집에 있습니다")
}
}
}
if-else if - else
package com.example.kotlinsyntaxvar
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var month = 6
//when (kotlin에서는 if문의 확장판) - 거의 대부분의 언어는 switch
when(month){
5->Log.d("when","5월입니다.")
in 6..8->{ //범위 6~8 사이일때
Log.d("when","여름입니다.")
}
9,10,11-> {
Log.d("when","가을입니다.")
}
else->{
Log.d("when","집에 있습니다.")
}
}
}
}
분기점이 많을 경우 if조건문보다 when이 좀 더 가독성이 좋은 편이다.
배열과 컬렉션
package com.example.kotlinsyntaxvar
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var variable=157
//배열
//int -> IntArray
var intArr:IntArray=IntArray(10)
intArr[0]=10
intArr[1]=20
intArr[2]=30
intArr[3]=40
intArr[4]=50
intArr[9]=100
//intArr[10]=110 은 error발생
Log.d("array","9번 인덱스의 값=${intArr[9]}")
var weekArray=CharArray(7)
weekArray[0]='월'
weekArray[1]='화'
//...
weekArray[6]='일'
//컬렉션
//리스트, 뮤터블리스트
var mutableList= mutableListOf<Int>() //Generic: 리스트에서 사용할 type을 지정
//값 넣기
mutableList.add(5) //0
mutableList.add(10) //1
mutableList.add(75) //2
mutableList.add(36) //3
Log.d("컬렉션","3번 인덱스의 값=${mutableList.get(3)}")
//맵
var mutableMap= mutableMapOf<String,String>()
mutableMap.put("변수1","값1")
mutableMap.put("변수2","값2")
Log.d("컬렉션","맵 변수1의 값은=${mutableMap.get("변수1")}")
}
}
반복문
package com.example.kotlinsyntaxvar
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var intArray:IntArray=intArrayOf(0,10,20,30,40,50,60,70,80)
//for
//일반적으로 몇 번의 횟수를 반복하는 형태
for (index in 1..10){
Log.d("반복문","index=${index}")
}
for (index in 1 until 10 step 2){
Log.d("반복문","index=${index}")
}
for (index in 10 downTo 1 step 2){
Log.d("반복문","index=${index}")
}
for(value in intArray){
Log.d("반복문","value=${value}")
}
//while
var out=0
while (out<3){
Log.d("while","현재 out 카운트=${out}")
out=out+1
}
do{
Log.d("while","현재 out 카운트=${out}")
out=out+1
}while (out<3)
//control loop
for(index in 0..10){
if (index>5) break
Log.d("포","현재 숫자=${index}")
}
}
}
함수
package com.example.kotlinsyntaxvar
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//함수 사용 이유 -> 코드 분류
functionParam("값",153)
getPI()
}
fun functionParam(param1:String,param2:Int):String{
Log.d("함수","param1=${param1}, param2=${param2}")
return "새로운 값"
}
fun getPI():Double{
return 3.141592
}
}
'💻STUDY > ANDROID STUDY' 카테고리의 다른 글
[Android-Kotlin] 6주차 (0) | 2022.05.16 |
---|---|
[Android-Kotlin] 5주차 (0) | 2022.05.09 |
[Android-Kotlin] 4주차 (0) | 2022.05.02 |
[Android- Kotlin] 2주차 (0) | 2022.03.27 |
[교양과목 복습] Eclipse - Java (0) | 2022.03.12 |
댓글