스칼라 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위를 차지하는 것은 더 이상 시간 문제가 아닙니다.