스칼라 For 루프 | 스칼라의 For 루프: 설명

게시 됨: 2021-02-19

스칼라에서 for 루프for-comprehensions 라고도 합니다. 리허설된 컬렉션을 반복, 필터링 및 반환하는 데 사용할 수 있습니다. for-comprehension 명령형 언어for-loop 와 매우 유사해 보입니다 . 그러나 차이점은 두운 결과의 목록을 함께 작성한다는 것입니다.

Scala 에는 다음과 같은 여러 형태의 for 루프있습니다.

목차

범위가 있는 For 루프

통사론

Scala에서 범위가 있는 for 루프 의 가장 복잡하지 않은 구문은 다음과 같습니다.

for( var x <- 범위 ){

진술(들);

}

위에 묘사된 바와 같이 Range 는 i에서 j 까지 또는 때때로 i에서 j까지 로 표현되는 임의의 숫자 범위일 수 있습니다 . 왼쪽 화살표 ← 연산자는 범위에서 개별 값을 생성하기 때문에 생성기 로 알려져 있습니다.

또는 다음 구문을 사용할 수도 있습니다.

for(w <- 범위){

// 코드..

}

여기서 w 는 변수, 왼쪽 화살표 기호 ← 연산자는 생성기, 범위 는 시작 값과 끝 값을 보유하는 값입니다. 범위는 i에서 j까지 또는 i까지를 사용하여 표시됩니다.

키워드 'to'를 사용하는 Scala For-Loop 예제

for 루프 와 함께 'to'사용 하면 시작 값과 끝 값이 모두 포함됩니다. 아래 표시된 예 에서 0에서 n 사이의 값을 인쇄 하기 위해 'to' 를 사용할 수 있습니다. 즉, 루프는 0에서 시작하여 10에서 끝납니다. 즉, 0에서 10까지의 페이지 번호를 인쇄할 수 있습니다.

// 스칼라 프로그램을 설명하는 방법

// to를 사용하여 for 루프 생성

개체 메인

{

def main(인수: 배열[문자열])

{

println("w의 값은:");

// 여기서 for 루프는 0부터 시작합니다.

// 10에서 끝남

for( w <- 0 ~ 10)

{

println(w);

}

}

}

산출:

위의 예에서 w 값은 다음과 같습니다.

0

1

2

4

5

6

7

8

9

10

읽기: 풀 스택 개발자가 되기 위한 10가지 기술

키워드 'until'을 사용하는 Scala For-Loop 예제

to to를 사용 하는 것의 차이점은 다음 과 같습니다 . to 는 범위에 주어진 시작 값과 끝 값을 포함하는 반면, until 은 주어진 범위의 마지막 값을 제외합니다. 아래에 설명 for-loop 예제 에서 0에서 n-1 사이의 값을 출력하기 위해 until 을 사용할 수 있습니다. 즉, 루프는 0에서 시작하여 n-1에서 끝나며 9가 나옵니다. 따라서 0에서 9까지의 페이지 번호를 인쇄할 수 있습니다.

// 스칼라 프로그램을 설명하는 방법

// until을 사용하여 for 루프 생성

개체 메인

{

def main(인수: 배열[문자열])

{

println("w의 값은:");

// 여기서 for 루프는 0부터 시작합니다.

// 10에서 끝남

for( w <- 0 ~ 10)

{

println(w);

}

}

}

산출:

위의 예에서 w 값은 다음과 같습니다.

0

1

2

4

5

6

7

8

9

또한 읽기: Python과 Scala

For 루프의 여러 값

단일 for 루프 에서 여러 범위를 사용할 수도 있습니다 . 이러한 범위는 세미콜론(;)을 사용하여 구분됩니다. 예를 들어 이것을 이해합시다. 아래 주어진 예에서 우리는 단일 루프에서 두 개의 서로 다른 범위, 즉 w <- 0 ~ 3을 사용했습니다. z <- 8 ~ 10.

// 스칼라 프로그램을 설명하는 방법

// for 루프에 여러 범위 생성

개체 메인

{

def main(인수: 배열[문자열])

{

// 여러 범위의 for 루프

for( w <- 0 ~ 3, z<- 8 ~ 10 )

{

println("w의 값은 :" +w);

println("y의 값은 :" +z);

}

}

}

산출:

w 값:0

y 값:8

w 값:0

y 값은 9입니다.

w 값:1

y 값:8

w의 값은 1입니다.

y 값은 9입니다.

w 값:2

y 값:8

w 값:2

y 값은 9입니다.

w 값:3

y 값:8

w의 값은 3입니다.

y 값은 9입니다.

확인: 인도의 전체 스택 개발자 급여

컬렉션이 있는 For 루프

스칼라에서는 for 루프 를 사용하여 for-each 루프 for-comprehensions 루프 를 사용하여 목록, 시퀀스 등과 같은 컬렉션을 효율적으로 반복할 수 있습니다 . Scala에서 컬렉션이 있는 for 루프 의 구문은 다음과 같습니다.

통사론

for( var x <- 목록 ){

진술(들);

}

여기서 변수 목록은 요소 목록이 있는 컬렉션 유형이고 for 루프 는 x 변수에서 한 번에 하나의 요소를 반환하는 모든 요소를 ​​반복합니다.

컬렉션이 있는 for 루프 를 이해하기 위해 아래에 제공된 데모 프로그램을 살펴보겠습니다 . 그림에서는 순위에 따라 작성자를 나열하기 위해 List 변수를 사용하여 컬렉션을 만들었습니다 .

// 스칼라 프로그램을 설명하는 방법

// 컬렉션과 함께 for 루프 사용

개체 메인

{

def main(인수: 배열[문자열])

{

변수 순위 = 0;

값 순위 목록 = 목록(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

// 컬렉션이 있는 For 루프

for( 순위 <- 순위 목록){

println("작성자 순위는 : " +rank);

}

}

}

산출:

작가 순위: 1

저자 순위: 2

작가 순위: 3

작가 순위: 4

작가 순위: 5

작가 순위: 6

작가 순위: 7

작가 순위: 8

작가 순위: 9

작가 순위: 10

필터가 있는 For 루프

스칼라 의 For 루프 를 사용하면 for 루프 에서 하나 이상의 if 문을 사용하여 주어진 컬렉션의 요소를 필터링할 수 있습니다 . 사용자는 세미콜론(;)을 사용하여 'for' 표현식에 필터를 두 개 이상 추가 하여 구분할 수도 있습니다. 아래는 필터가 있는 for-loop 의 구문입니다 .

통사론

for( var x <- 목록

조건1인 경우; 조건2인 경우…

){

진술(들);

}

예제를 통해 이것을 더 잘 이해합시다. 아래에 제공된 그림은 두 개의 필터를 사용하여 지정된 컬렉션을 분리합니다. 예를 들어 아래 샘플에서 필터는 순위가 2보다 크고 7보다 작은 작성자 목록을 제거합니다.

// 스칼라 프로그램을 설명하는 방법

// 필터와 함께 for 루프 사용

개체 메인

{

def main(인수: 배열[문자열])

{

변수 순위 = 0;

값 순위 목록 = 목록(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

// 필터가 있는 For 루프

for( 순위 <- 순위 목록

순위 < 7인 경우 순위 > 2인 경우)

{

println("작성자 순위는 : " +rank);

}

}

}

산출:

작가 순위: 3

작가 순위: 4

작가 순위: 5

작가 순위: 6

For-Loop with Yield

스칼라에서 루프의 반환 값은 변수에 저장되거나 함수를 통해 반환될 수 있습니다. 이렇게 하려면 'for' 표현식의 본문에 키워드 yield 를 접두사로 붙여야 합니다 . 다음은 yield 가 있는 for-loop 의 구문입니다 .

통사론

var retVal = for{ var x <- 목록

조건1인 경우; 조건2인 경우…

}

수익률 x

참조 - 중괄호는 변수와 조건을 나열하고 retVal 은 x의 모든 값이 컬렉션 형태로 저장되는 변수입니다.

삽화의 도움으로 이것을 더 잘 이해합시다. 아래 주어진 예에서 출력은 모든 순위 값이 컬렉션 형태로 저장되는 변수입니다. for 루프 순위가 4보다 크고 8보다 작은 저자 목록만 표시합니다.

// 스칼라 프로그램을 설명하는 방법

// yield와 함께 for 루프 사용

개체 메인

{

def main(인수: 배열[문자열])

{

변수 순위 = 0;

값 순위 목록 = 목록(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

// 수익률이 있는 For 루프

var 출력 = for{ rank <- ranklist

순위 > 4인 경우 순위가 != 8인 경우 }

수익률 순위

// 결과 표시

(순위 <- 출력)

{

println("작성자 순위는 : " + rank);

}

}

}

산출:

작가 순위: 5

작가 순위: 6

작가 순위: 7

작가 순위: 9

작가 순위: 10

세계 최고의 대학에서 온라인으로 소프트웨어 개발 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론

전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 이그 제 큐 티브 PG 프로그램을 확인하십시오. 이 프로그램은 작업 전문가를 위해 설계되었으며 500 시간 이상의 엄격한 교육, 9 개 이상의 프로젝트, 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

스칼라 프로그래밍 언어란?

스칼라는 간결하고 우아하며 형식이 안전한 방식으로 일반적인 프로그래밍 패턴을 표현하도록 설계된 범용 프로그래밍 언어입니다. 하이브리드 기능 및 객체 지향 언어이며 고차 함수 및 지연 평가와 같은 기능적 프로그래밍 구성을 지원하지만 클래스, 객체 리터럴 및 유형 추론과 같은 객체 지향 언어의 기능도 있습니다. Scala는 JVM(Java Virtual Machine)용으로 설계된 가장 눈에 띄는 언어 중 하나이지만 JavaScript 소스 코드로 컴파일하거나 .NET CLR(공용 언어 런타임)을 사용할 수도 있습니다.

프로그래밍에서 루프란?

루프는 문 블록을 다른 횟수(정수)로 반복하는 프로그래밍 문입니다. 루프에는 for와 while의 두 가지 유형이 있습니다. 루프는 특정 조건이 채워질 때까지 코드 블록을 반복합니다. 루프를 사용하여 지정된 기준이 채워질 때까지 동일한 작업을 반복해서 수행할 수 있습니다. for 루프, while 루프, do while 루프 및 foreach 루프와 같은 여러 유형의 루프가 있습니다. 이러한 각 유형에는 고유한 장점과 사용 사례가 있습니다. 예를 들어 고정된 횟수만큼 배열을 반복하려면 for 루프를 사용할 수 있습니다. 조건에 따라 반복하려면 while 루프를 사용할 수 있습니다. 배열의 요소에 액세스하려면 foreach 루프를 사용할 수 있습니다.

스칼라 언어의 미래는 무엇입니까?

스칼라는 함수형 프로그래밍 원칙을 통합한 범용 프로그래밍 언어입니다. 플랫폼에 독립적입니다. 스칼라는 유형 유추를 사용하는 정적으로 유형이 지정된 언어입니다. 또한 코드를 객체 지향 스타일로 작성할 수 있습니다. 스칼라는 풍부한 라이브러리를 가지고 있으며 코딩의 간결함입니다. 이러한 요소들로 인해 Scala는 매우 인기 있는 프로그래밍 언어입니다. 자바 프로그래머라면 Scala를 더 쉽게 사용할 수 있습니다. Java 프로그래머가 아니지만 여전히 Scala를 사용하려는 경우 Scala 인터프리터 시스템을 사용할 수 있습니다. Scala는 빠르게 성장하는 커뮤니티를 보유하고 있으며 순위에서 1위를 차지하는 것은 더 이상 시간 문제가 아닙니다.