반복 횟수
값 시퀀스를 반복하는 루프는 Q#에서 for
루프로 표현됩니다. Q#의 for
루프는 조건에 따라 중단되지 않고, 대신 반복 또는 다른 언어에서 종종 foreach
또는 iter
로 표현되는 항목에 해당합니다. 현재 Q#에서 반복을 지원하는 데이터 형식에는 배열과 범위라는 두 가지가 있습니다.
식은 키워드(keyword)for
, 기호 또는 기호 튜플, 키워드(keyword)in
, 배열 또는 Range
형식의 식 및 문 블록으로 구성됩니다.
문 블록(루프 본문)은 범위 또는 배열의 각 값에 바인딩된 하나 이상의 루프 변수를 사용하여 반복적으로 실행됩니다. 동일한 분해 규칙이 let
, mutable
, set
, use
및 borrow
문의 바인딩과 같은 다른 변수 할당에 따라 정의된 루프 변수에 적용됩니다. 루프 변수 자체는 변경 없이 바인딩되며 루프 본문 내에서 다시 할당할 수 없고 루프가 종료될 때 범위를 벗어납니다.
루프가 반복되는 식은 루프에 들어가기 전에 평가되며, 루프가 실행되는 동안에는 변경되지 않습니다.
다음 예에서 확인할 수 있습니다. qubits
가 Qubit[]
형식의 값이라고 가정하면 다음과 같습니다.
for qubit in qubits {
H(qubit);
}
mutable results : (Int, Result)[] = [];
for index in 0 .. Length(qubits) - 1 {
set results += [(index, M(qubits[index]))];
}
mutable accumulated = 0;
for (index, measured) in results {
if measured == One {
set accumulated += 1 <<< index;
}
}
대상별 제한 사항
Q#에는 break
또는 continue
기본 형식이 없으므로 반복 값이 알려지는 즉시 루프의 길이를 알 수 있습니다. 따라서 for
루프는 모든 양자 하드웨어에서 실행할 수 있습니다.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기