kotlin 기초 편 1-2

Lee Jung-hwan·2023년 5월 12일
0

Kotlin

목록 보기
2/3
post-thumbnail

주의! 이글은 개인 공부 목적으로 작성된 포스팅입니다.
잘못된 내용이 있을 수 있음을 주의해주세요.

오늘은 Kotlin 기초 두 번째 시간이다. 저번 강의가 어렵지는 않았나 하는 걱정이 든다.
저번 시간의 내용을 간단하게 살펴보자.

  1. 변수 선언 및 var / val의 차이점
  2. println()을 통한 변수의 출력
  3. String.format()을 사용한 출력 형식 지정
  4. ${} 사용법 등

만약, 위 내용이 전부 기억난다면 아주 멋진 사람이다.
기억이 안 난다면 Kotlin 기초 편 1-1을 보자.


✅ True, False 처리를 어떻게 해야 할까?

우선 True, False가 뭔지부터 알아보자. 전혀 어렵지 않다.
맞으면 True 틀리면 False이다. 아래 코드를 보자.

var isTrue = false

해당 코드에서 isTrue변수안에는 false가 들어가 있다.
그럼 저걸 어떻게 사용할까? 아래 코드를 보자.

var isTrue =false

if(isTrue){
	println("isTrue 변수의 값은 참입니다.")
}else{
	println("isTrue 변수의 값은 거짓입니다.")
}

> isTrue 변수의 값은 참입니다.

이때 사용되는 게 if, else문이다.
if는 만약이다. if()괄호 안에 값 또는 조건을 넣어 검증하고 적절하게 설정된 분기의 명령어를 실행한다.

👀 그럼 if 문을 제외하고 또 다른 경우는 어떤 식으로 처리해야 할까?

var num = 1

if(num == 0){
	println("num의 값은 0입니다.")
}else if(num == 1){
	println("num의 값은 1입니다.")
}else{
	println("num의 값은 0과1이 아닙니다.")
}

> "num의 값은 1입니다."

위 처럼 else if문을 사용해 괄호안에 또 다른 조건을 걸어 적절하게 분기를 처리할 수 있다.


🔥 != , == , || , && 이게 다 뭐야?

위 제목에 나와 있는 용어는 우리가 흔히 코딩하면 많이 쓸 논리 연산자이다.

var num = 1
var num2 = 2

if(num != 1){
	println("num은 1이 아닙니다.")
}else if(num == 2){
	println("num은 2입니다.")
}else if(num == 2 && num2 == 1){
	println("num은 2이고 num2는 1입니다.")
}else if(num == 1 || num2 == 3){
	println("num이 1이거나 num2는 3입니다.")
}else{
	println("모든 조건에 해당하지 않습니다.")
}

> num이 1이거나 num2는 3입니다.
  • != : 왼쪽 값이 오른쪽이 아닐 경우
  • == : 왼쪽 값이 오른쪽값과 같을 경우
  • || : 왼쪽 값이 참이거나, 오른쪽값이 참일 경우
  • && : 왼쪽 값과 오른쪽값이 참일 경우
  • ! : True -> False / False -> True 반대로 연산한다.

위 표와 코드를 참고해서 충분히 이해를 해보는 시간을 가져보자.
위 코드의 실행 결과는 "num이 1이거나 num2는 3입니다."이다.

해당 코드에서 num2는 3이 아닌데 왜 실행됐을까?
그 이유는 맨 앞에 num == 1 조건이 참이고 "||" 연산자를 사용했기 때문에 실행된 것이다.


❓ 여러 번 반복 어떻게 하는 걸까?

아래 두 코드를 비교해보자.

println("Hello world")
println("Hello world")
println("Hello world")
println("Hello world")
println("Hello world")
println("Hello world")
println("Hello world")
println("Hello world")
println("Hello world")
println("Hello world")
for(i in 0 until 10){
	println("Hello world")
}

위 코드는 모두 똑같이 "Hello world"를 10번 출력해주는 코드이다.
하지만 2번째 코드가 가독성이 훨씬 뛰어나다.

for 문은 위와 같이 특정 코드를 반복해주는 역할을 한다.
for 문 사용법을 알아보자.

위 사진처럼 for를 입력하고 괄호 안에 인덱스로 사용할 변수명"i"와 범위를 지정해준다.
".."을 입력하면 0번 인덱스부터 10번 인덱스까지다.

그럼 우린 9번 인덱스까지 사용하고 싶으면 9를 입력하면 될까?
해당 방법도 있지만 "until"을 사용하면 된다.

위 사진처럼 ".."대신 "until"을 사용하면 손쉽게 구현할 수 있다.
하지만, 우리는 for 문을 사용할 때 1만 증가시키는 건 아니다. 2씩 증가시킬 때도 있고, 3씩 증가 시킬 때도 있다.

그때 사용되는 게 "step"이다.

for (i in 0 until  10 step 2){
        println(i)
    }
    
> 0
> 2
> 4
> 6
> 8

위와 같이 step에 증가시키고 싶은 수를 입력하면 해당 수에 맞게 값이 증가한다.
그럼, 반대로 down 시키고 싶으면 어떻게 해야 할까?

그때 사용되는 게 "downTo"이다.

for (i in 10 downTo 0){
        println(i)
    }
    
    
> 10
> 9
> 8
> 7
> 6
> 5
> 4
> 3
> 2
> 1
> 0

위와 같이 downTo를 사용하면 감소 연산을 진행하면서 반복할 수 있고 step을 적용하면 그에 맞는 감소 연산을 수행해 반복할 수 있다.


🧐 조건이 맞을 때까지 반복해주지!

우리는 for 문 이외에도 while 문에 대해 알아야 한다. 왜 알아야 할까?
for 문은 특정 횟수를 반복하지만, 만약 몇 번 반복해야 하는지 모를 때 어떻게 해야 할까?

그때 사용되는게 while문이다. 아래 코드를 통해 알아보자.

문제 : 사용자가 입력한 문장이 "N"과 같을경우 프로그램을 종료하고, 아닐 경우 출력해주세요.

정답:


while(true){ //괄호 안의 값이 True일 경우 계속 반복한다.
	var line = readln() // 사용자의 입력을 받는다.
    
    if(line == "N"){ // 입력값이 N 일 경우
    	break // break는 while 문을 종료시킨다.
    }else{
    	println(line) // 입력값이 N이 아닐 때 사용자의 입력을 출력한다.
    }
}

위 코드를 보면 while문은 괄호안의 값이 True일 경우 무한적으로 반복하는것을 알 수 있다.
재밌지 않은가?

괄호 안에 예를 들어 (num != 1)과 같이 조건을 추가해서 while문을 작동 시킬수도 있다.

Tip : Java에서는 String을 비교할 때 equals()를 사용했는데 왜 kotlin은 ==을 사용하나요?
kotlin은 기본적으로 equals()를 사용하지 않아도, ==을 사용해 문자열을 비교할 수 있습니다.
만약, 주솟값을 비교하고 싶다면 ===을 사용해 비교하면 됩니다.


⭐️ 알아두면 좋은 for문 사용법

  1. forEach{} -> 리스트 안에 있는 아이템을 하나씩 꺼내준다.
var list = arrayOf(1,2,3,4,5)

list.forEach{
	println(it)
}
  1. forEachIndexed{} -> 리스트 안에 있는 아이템을 꺼내주고 index를 알려준다.
var list = arrayOf(1,2,3,4,5)

list.forEachIndexed{ i, item ->
	println("인덱스 : $i 값 : $item")
}

🌟 오늘은 여기까지!

오늘은 코드를 많이 적다 보니 내용이 다소 길어졌다.
지금까지 내 글 읽어주신 모두에게 감사하다.

아래 깃허브 주소에는 여러 참고 소스 코드가 있으니 관심 있으면 들어가 보는 것도 좋다.

링크 : https://github.com/LeeJungHwan-Dev/2022_Kotlin_Study

profile
안녕하세요😁 안드로이드 개발자 이정환 입니다~⭐️

0개의 댓글