조건문
if문 if-else문
if(조건식) {
//true면 실행
}
if(조건식) {
//true면 실행
}
else {
//false면 실행
}
when문
여러 가지 경우에 따라서 어떤 작업을 할 것인지를 결정한다. switch문과 비슷하다고 생각한다.
when(식) {
값1-> //결과가 값1이면 실행
값2-> //결과가 값2이면 실행
.
.
.
else-> //해당되는 값이 없으면 실행
}
예제 - 조건문 if when 사용하기
fun main() {
var count: Int = 85
if (count >= 90) {
println("if문 : 합격 (장학생)")
} else if (count >= 60) {
println("if문 : 합격")
} else {
println("if문 : 불합격")
}
//방법 1
println("방법 1")
var score1: Int = (count / 10) * 10
when (score1) {
100 -> println("when문 : 합격 (장학생)")
90 -> println("when문 : 합격 (장학생)")
80, 70, 60 -> println("when문 : 합격")
else -> println("when문 : 불합격")
}
//방법 2
println("방법 2")
var score2: Int = count
when (score2) {
in 90..100 -> println("when문 : 합격 (장학생)")
in 69..89 -> println("when문 : 합격")
else -> println("when문 : 불합격")
}
}
실습 : 점수 따라 학점 나누는 프로그램 작성
fun main() {
var count: Int = 85
// 1) if-else문
if (count >= 90)
println("A학점")
else if (count >= 80)
println("B학점")
else if (count >= 70)
println("C학점")
else if (count >= 60)
println("D학점")
else
println("F학점")
//2) when문
when (count) {
in 90..100 -> println("A학점")
in 80..89 -> println("B학점")
in 70..79 -> println("C학점")
in 60..69 -> println("D학점")
else -> println("F학점")
}
}
배열
여러 개의 데이터를 하나의 변수에 저장하기 위해 사용한다.
1차원 배열 선언 형식
1. Array()
선언 당시에 배열의 크기가 정해져 있다. 또한 크기를 선언 후 배열의 크기를 변경할 수 없습니다.
//방법 1
var 배열명 = Array<데이터 형식>(개수, {초기값})
//방법 2
var 배열명 = Array<데이터 형식>(개수) {초기값}
//배열 선언 및 값 대입 예시
var one = Array<Int>(4, {0})
one[0] = 10
one[3] = 20
2. arrayOf()
val numbers = arrayOf(4, 5, 7, 3) // 정수형으로 초기화된 배열
val animals = arrayOf("Cat", "Dog", "Lion") // 문자열형으로 초기화된 배열
3. arrayOfNulls()
빈배열을 선언한다.
Array()와 arrayOf()의 차이점
arrayOf()는 선언과 동시에 개별 원소 값을 지정할 수 있는 반면에
Array는 개별 원소값을 지정할 수 없다. 대신 람다식을 활용할 수 있다.
2차원 배열 선언 형식
var 배열명 = Array<배열 데이터 형식>(행 개수, {배열 데이터 형식(열 개수)}
//배열 선언 및 값 대입 예시
var two = Array<IntArray>(3, {IntArray(4)})
two[0][0] = 100
two[2][3] = 200
밑에 예시와 같이 여러 배열로 하나의 배열로 선언할 수 있다.
val array1 = arrayOf(1, 2, 3)
val array2 = arrayOf(4, 5, 6)
val array3 = arrayOf(7, 8, 9)
//방법 1
val arr2d = arrayOf(array1, array2, array3)
//빙법 2
val arr2d = arrayOf(arrayOf(1, 2, 3), arrayOf(4, 5, 6), arrayOf(7, 8, 9))
배열을 선언하면서 값을 바로 대입하는 것도 가능하다.
var three : IntArray = intArrayOf(1,2,3)
ArrayList
크기가 자유롭고 값을 수정할 수 있다. add와 remove 사용이 가능하다.
var one = ArrayList<Int>(4)
one.add(10)
one.add(20)
var sum = one.get(0) + one.get(1)
반복문
for문
C++에서 많이 접한 반복문이지만 문법이 조금 다르다. <와 ++나 -- 사용하는 대신 in와 step이라는 명령어를 사용한다.
for (변수 in 시작 .. 끝 step 증가량) {
//반복 실행
}
//배열의 개수만큼 변수에 대입하여 반복하는 방법
for (변수 in 배열명.indices) {
//반복 실행
}
//예시
var one : IntArray = IntArrayOf(10,20,30,40)
for (i in one.indices) {
println(one[i])
}
다음 코드를 보면 배열의 내용이 하나씩 변수에 대입된 후 for 문 내부가 실행된다.
➡️배열의 개수만큼 for 문이 반복된다.
//i(첨자) 없이 바로 배열의 값을 하나씩을 처리하는 방법
for (변수 in 배열명) {
//이 부분에서 변수 사용
}
while문
while (조건식) {
//true면 이 부분을 실행
}
break와 continue의 차이점
break ➡️ 무조건 반복문 밖으로 나간다.
continue ➡️ 무조건 끝으로 건너뛴 후에 다시 반복문으로 돌아간다.
예제
* $ - 변수 표시
//ForSum.kt
fun main() {
var sum = 0
for (x in 1..10) {
sum += x
}
println("sum: $sum")
sum = 0
for (x in 1..10)
sum += x
println("sum: $sum")
}
//whileSum.kt
fun main() {
var sum = 0
var x = 0
while (x <= 10) {
sum += x
x++
}
println("sum: $sum")
sum = 0
x = 0
do {
sum += x
x++
} while (x <= 10)
println("sum: $sum")
}
fun main() {
var one: IntArray = intArrayOf(10, 20, 30)
for (i in one.indices)
println(one[i])
for (value in one)
println(value)
var two: Array<String> = arrayOf("하나", "둘", "셋")
for (i in 0..2 step 1)
println(two[i])
var k: Int = 0
while (k < two.size) {
println(two[k])
k++
}
}
실습
1) 3X3 크기의 2차원 배열 선언하고 for문을 이용하여 값을 할당하는 프로그램 작성
fun main() {
var two = Array<IntArray>(3,{IntArray(3)})
//var three = arrayOf(arrayOf(100,110,120), arrayOf(130,140,150), arrayOf(160,170,180))
var value : Int = 100
for (i in 0..2)
{
for(j in 0..2)
{
two[i][j] = value
value += 10
println("two[$i][$j]: ${two[i][j]}")
}
}
}
2) 5단부터 8단까지 구구단을 출력하는 프로그램을 for문으로 작성
fun main() {
println("***********")
for(i in 5..8) {
for (j in 1..9) {
println("$i X $j = ${i * j}")
}
println("***********")
}
}
3) 1부터 100사이의 홀수를 누적하는 프로그램을 while문으로 작성
fun main() {
var sum = 0
var i = 0
while(i <= 100) {
if(i % 2 == 1) {
sum += i
}
i++
}
println("sum(while) = $sum")
sum = 0
i = 0
for(i in 1..100 step 2){
sum += i
}
println("sum(for) = $sum")
}
'개발 공부 > Kotlin' 카테고리의 다른 글
[GURU 2] 1일차 : Kotlin의 기본 문법 | 변수와 데이터 형식 (var val의 차이) (0) | 2022.06.29 |
---|