스칼라 제 1장 scala 조건문과 반복문 조건문: if 사용 방법 if (조건) { 실행문} else if (조건) {실행문} else{실행문}
예제코드 object Ex 1_1{ def main(agrs: Array[String]) = { var x = 20 if(x > 15) println("15보다 큼") else if(x < 15) println("15보다 작음") else println("what is this?") } } 결과 15보다 큼
반복문: for 사용방법 for (x <- 1 (to), (until) 10) 예제코드 object Ex 1_1{ def main(agrs: Array[String]) = { for( x <- 1 to 10) println("x의 값은" + x) for (x <- 1 until 10) println("x의 값은" + x) } } 결과 x의 값은 1 x의 값은 2 x의 값은 3 x의 값은 4 x의 값은 5 x의 값은 6 x의 값은 x의 값은7 x의 값은8 x의 값은9 x의 값은 10 x의 값은1 x의 값은2 x의 값은 3 x의 값은 4 x의 값은 5 x의 값은 6 x의 값은 7 x의 값은 8 x의 값은 9 여기서 to 는 c언어에서 <=(이하)와 같다 그리고 until은 c언어에서의 <(미만)을 의미한다
반복문: while 과 do while while 과 do while 은 자바와 크게 다른점이 없다 사용방법 while while(조건) { //반복할 실행문 } 예제 object Ex 1_1{ def main(agrs: Array[String]) = { var a = 0 while(a < 20) { println(a + ",") a = a + 1 } } } 결과 0, 1, 2, 3, 4, 5, 6 ,7 ,8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 예제 do while object Ex 1_1{ def main(agrs: Array[String]) = { var a = 0 do { println(a + ",") a = a + 1 }while (a < 20) } } 결과 0, 1, 2, 3, 4, 5, 6 ,7 ,8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
반복문: 이중 for 이중 for 문이란 for 문안에 for 문이 중첩되는 형태이다 코드로 설명 하겠다 전형적인 이중 for 문 object Ex 1_1{ def main(agrs: Array[String]) = { for(x <- 1 until 5){ for(y <- 1 until 5){ println(x*y) } } } } 결과 1, 2, 3, 4 , 2, 4 , 6, 8 , 3, 6, 9, 12, 4, 8, 12, 16 이러한 방식의 for 문은 번거롭고 보기에 좋지 않다 그래서 스칼라는 다른 방식의 이중 for문을 지원한다 보통의 이중 for 문과 달리 하나의 for 문 안에, 한번의 조건이 끝났을 때 다음 조건을 같이 넣어 주면 된다 스칼라식 이중 for 문 object Ex 1_1{ def main(agrs: Array[String]) = { for(x <- 1 until 5; y <- 1 until 5) println(x*y) } } 결과 1, 2, 3, 4 , 2, 4 , 6, 8 , 3, 6, 9, 12, 4, 8, 12, 16 핵심이 되는 코드는 3행이다 세미콜론 앞에 있는 조건이 먼저 도는 for 문이고 뒤에 오는 조건이 안쪽에 위치한 for 문이라고 할수 있다 앞에 코드와 성능은 동일하지만 가독성면에서 이방식이 훨씬 깔끔하다 반복문: 조건이 있는 반복 스칼라에서의 for 문에는 조건을 통해 반복할 대상을 제한 할 수도 있다 굳이 루프 안에서 if 문을 통해 지저분하게 감싸주지 않아도 반복해야하는 대상을 미리 골라낼 수 있다 다음 코드를 보면 가독성을 위해 for 문 안에서 괄호를 써서(1 to 10) 과 (i %2 == 0)을 묶어 주었다 조건이 있는 반복문 object Ex 1_1{ def main(agrs: Array[String]) = { for(x <- (1 to 10) if(i%2 == 0)){ println(i) } } } 결과 2 4 6 8 10 결과를 보면 i를 2로 나눈 나머지가 0인 값들, 즉 짝수만 박복의 대상이 되는 것을 알 수 있다 이중 혹은 그 이사으이 중복 for 문에서도 if 를 통해 반복될 대상을 쉽게 골라낼 수 있다 반복문: 인덱스가 있는 for 문 간혹 반복문 에서는 인덱스(index)가 필요할 때 가 있다 예를 들어 루프가 몇번째 돌고 잇는지 알아야 하는 경우이다 스칼라에서는 이럴 때 다음과 같은 방법을 이용할 수 있다 for((num, index) <- List.zipWithIndex){ println(num) println(index) } List 클래스는 스칼라 컬렉션의 일부이다 컬력션에 대해서는 뒤에서 다시 설명을 할 것입니다 ㄴ이 코드와 같이 List의 zipWithIndex메서드를 사용하면 배열 및 컬렛션 형식의 자료형에서 루프를 돌 때 인덱스를 사용할 수 있다
스칼라 제 1장
답글삭제scala 조건문과 반복문
조건문: if
사용 방법
if (조건) { 실행문}
else if (조건) {실행문}
else{실행문}
예제코드
object Ex 1_1{
def main(agrs: Array[String]) = {
var x = 20
if(x > 15) println("15보다 큼")
else if(x < 15) println("15보다 작음")
else println("what is this?")
}
}
결과
15보다 큼
반복문: for
사용방법
for (x <- 1 (to), (until) 10)
예제코드
object Ex 1_1{
def main(agrs: Array[String]) = {
for( x <- 1 to 10)
println("x의 값은" + x)
for (x <- 1 until 10)
println("x의 값은" + x)
}
}
결과
x의 값은 1 x의 값은 2 x의 값은 3 x의 값은 4 x의 값은 5 x의 값은 6 x의 값은 x의 값은7 x의 값은8 x의 값은9 x의 값은 10
x의 값은1 x의 값은2 x의 값은 3 x의 값은 4 x의 값은 5 x의 값은 6 x의 값은 7 x의 값은 8 x의 값은 9
여기서 to 는 c언어에서 <=(이하)와 같다 그리고 until은 c언어에서의 <(미만)을 의미한다
반복문: while 과 do while
while 과 do while 은 자바와 크게 다른점이 없다
사용방법 while
while(조건) {
//반복할 실행문
}
예제
object Ex 1_1{
def main(agrs: Array[String]) = {
var a = 0
while(a < 20) {
println(a + ",")
a = a + 1
}
}
}
결과
0, 1, 2, 3, 4, 5, 6 ,7 ,8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
예제 do while
object Ex 1_1{
def main(agrs: Array[String]) = {
var a = 0
do {
println(a + ",")
a = a + 1
}while (a < 20)
}
}
결과
0, 1, 2, 3, 4, 5, 6 ,7 ,8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
반복문: 이중 for
이중 for 문이란 for 문안에 for 문이 중첩되는 형태이다
코드로 설명 하겠다
전형적인 이중 for 문
object Ex 1_1{
def main(agrs: Array[String]) = {
for(x <- 1 until 5){
for(y <- 1 until 5){
println(x*y)
}
}
}
}
결과 1, 2, 3, 4 , 2, 4 , 6, 8 , 3, 6, 9, 12, 4, 8, 12, 16
이러한 방식의 for 문은 번거롭고 보기에 좋지 않다
그래서 스칼라는 다른 방식의 이중 for문을 지원한다
보통의 이중 for 문과 달리 하나의 for 문 안에, 한번의 조건이 끝났을 때 다음 조건을 같이 넣어 주면 된다
스칼라식 이중 for 문
object Ex 1_1{
def main(agrs: Array[String]) = {
for(x <- 1 until 5; y <- 1 until 5)
println(x*y)
}
}
결과
1, 2, 3, 4 , 2, 4 , 6, 8 , 3, 6, 9, 12, 4, 8, 12, 16
핵심이 되는 코드는 3행이다 세미콜론 앞에 있는 조건이 먼저 도는 for 문이고 뒤에 오는 조건이 안쪽에 위치한 for 문이라고 할수 있다 앞에 코드와 성능은 동일하지만 가독성면에서 이방식이 훨씬 깔끔하다
반복문: 조건이 있는 반복
스칼라에서의 for 문에는 조건을 통해 반복할 대상을 제한 할 수도 있다 굳이 루프 안에서 if 문을 통해 지저분하게 감싸주지 않아도 반복해야하는 대상을 미리 골라낼 수 있다
다음 코드를 보면 가독성을 위해 for 문 안에서 괄호를 써서(1 to 10) 과 (i %2 == 0)을 묶어 주었다
조건이 있는 반복문
object Ex 1_1{
def main(agrs: Array[String]) = {
for(x <- (1 to 10) if(i%2 == 0)){
println(i)
}
}
}
결과
2
4
6
8
10
결과를 보면 i를 2로 나눈 나머지가 0인 값들, 즉 짝수만 박복의 대상이 되는 것을 알 수 있다 이중 혹은 그 이사으이 중복 for 문에서도 if 를 통해 반복될 대상을 쉽게 골라낼 수 있다
반복문: 인덱스가 있는 for 문
간혹 반복문 에서는 인덱스(index)가 필요할 때 가 있다 예를 들어 루프가 몇번째 돌고 잇는지 알아야 하는 경우이다 스칼라에서는 이럴 때 다음과 같은 방법을 이용할 수 있다
for((num, index) <- List.zipWithIndex){
println(num)
println(index)
}
List 클래스는 스칼라 컬렉션의 일부이다 컬력션에 대해서는 뒤에서 다시 설명을 할 것입니다 ㄴ이 코드와 같이 List의 zipWithIndex메서드를 사용하면 배열 및 컬렛션 형식의 자료형에서 루프를 돌 때 인덱스를 사용할 수 있다
다음 정리는 컴퓨터의 개념
답글삭제