[Scala]조건문과 반복문
[Scala]조건문과 반복문
조건문과 반복문에 대해서 알아보기(Scala식 표현에 중점)
조건문
if(조건){실행문}
else is(조건){실행문}
else{실행문}
반복문
for(x <- 1 to 5)
println("x 값:" + x)
x 값:1
x 값:2
x 값:3
x 값:4
x 값:5
------------------------
for(x <- 1 until 5)
println("x 값:" + x)
x 값:1
x 값:2
x 값:3
x 값:4
------------------------
for(x <- 1 until 5 by 2)
println("x 값:" + x)
x 값:1
x 값:3
- 자바와 큰 차이가 있다. 자바의 for문의 경우 (초기값, 범위, 증감연산)
- 스칼라는 초기값 변수 선언을 하지않음. to, until 사용
- to는 5까지, until은 5-1R까지
- by를 사용하여 증감
스칼라식 이중 for문
// Scala식 이중 for 문 (구구단 1단 2단)
for(x <- 1 to 2; y <-1 to 9 ){
print( x +"*" + y + "=" + x*y +", ")
}
1*1=1, 1*2=2, 1*3=3, 1*4=4, 1*5=5, 1*6=6, 1*7=7, 1*8=8, 1*9=9, 2*1=2, 2*2=4, 2*3=6, 2*4=8, 2*5=10, 2*6=12, 2*7=14, 2*8=16, 2*9=18,
while, do while
var a = 0
while(a < 20){
print(a + ",")
a += 1
}
a: Int = 0
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
--------------------------------------------------
var b = 0
do{
print(b + ",")
b += 1
}while(b < 20)
b: Int = 0
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
- 스칼라에서는 a++, a–과 같은 표현식 사용이 불가능
- a 자체의 값을 변경하는 것이 권장되지 않기 때문이다.
팁: 인덱스가 있는 for문
- 예를 들어서 루프가 몇번 째 돌고 있는지 알아야 하는 경우에 아래와 같이 사용
for( (num,index) <- List.zipWithIndex){
println(num)
println(index)
}
- List의 zipWithIndex 메서드를 사용하면 배열 및 컬렉션 형식의 자료형에서 루프를 돌 때, 인덱스를 사용할 수 있다.