문
Q#은 문과 식을 구별합니다. Q# 프로그램은 클래식 및 양자 계산의 혼합으로 구성되며, 구현은 다른 클래식 프로그래밍 언어와 매우 유사합니다. let
및 mutable
바인딩과 같은 일부 문은 클래식 언어에서 잘 알려져 있는 반면, 접합 또는 큐비트 할당과 같은 다른 문은 양자 도메인에 고유합니다.
다음 문은 현재 Q#에서 사용할 수 있습니다.
call 문
호출 문은Unit
를 반환하는 연산 또는 함수 호출로 구성됩니다. 호출된 호출 가능 항목은 현재 컨텍스트에 의해 부과된 요구 사항을 충족해야 합니다. 자세한 내용은 call 문을 참조하세요.return 문
return 문은 현재 호출 가능한 컨텍스트 내에서 실행을 종료하고 호출자에게 제어를 반환합니다. 모든 마무리 작업은 반환 값이 평가된 후 제어가 반환되기 전에 실행됩니다. 자세한 내용은 반환 및 종료를 참조하세요.fail 문
fail 문은 전체 프로그램을 중지하고 현재 프로그램 상태에 대한 정보를 수집한 후 오류로 종료합니다. 수집된 정보를 집계하여 문의 일부로 지정된 메시지와 함께 사용자에게 제공합니다. 자세한 내용은 반환 및 종료를 참조하세요.변수 선언
현재 범위의 나머지 부분에 대해 유효한 하나 이상의 지역 변수를 정의하고 지정된 값에 바인딩합니다. 변수는 영구적으로 바인딩되거나 나중에 재할당 가능하도록 선언될 수 있습니다. 자세한 내용은 변수 선언 및 재할당을 참조하세요.변수 재할당
재할당 가능한 것으로 선언된 변수는 다른 값을 포함하도록 다시 바인딩될 수 있습니다. 자세한 내용은 변수 선언 및 재할당을 참조하세요.반복
반복은 각 반복 중에 선언된 루프 변수를 시퀀스의 다음 항목(배열 또는Range
형식의 값)에 할당하고 할당된 문 블록을 실행하는 루프와 같은 문입니다. 자세한 내용은 반복을 참조하세요.While 문
지정된 조건이true
로 평가되면 문 블록이 실행됩니다. 조건이false
로 평가될 때까지 문이 실행됩니다. 자세한 내용은 조건부 루프를 참조하세요.repeat 문
조건에 따라 중단되는 양자별 루프입니다. 이 문은 지정된 조건이 평가되기 전에 실행되는 문의 초기 블록으로 구성됩니다. 조건이false
로 평가되면 선택적 후속fixup
블록이 실행된 후 루프의 다음 반복이 시작됩니다. 루프는 조건이true
로 평가되는 경우에만 종료됩니다. 자세한 내용은 조건부 루프를 참조하세요.if 문
if 문은 부울 식이 앞에 오는 하나 이상의 문 블록으로 구성됩니다. 부울 식이true
로 평가되는 첫 번째 블록이 실행됩니다. 필요에 따라 조건 중 어떤 것도true
로 평가되지 않을 때 실행되는 문 블록을 지정할 수 있습니다. 자세한 내용은 조건부 분기를 참조하세요.활용
접합은 특별한 양자별 문입니다. 여기서 양자 상태에 단일 변환을 적용하는 문 블록이 실행된 후 첫 번째 블록에서 적용된 변환이 다시 되돌리기 전에 다른 문 블록이 실행됩니다. 수학적 표기법에서 접합은 U†VU 형식을 양자 상태로 변환하는 것을 설명합니다. 자세한 내용은 접합을 참조하세요.큐비트 할당
큐비트 또는 큐비트 배열을 인스턴스화 및 초기화하고, 선언된 변수에 바인딩하고, 문 블록을 실행합니다. 인스턴스화된 큐비트는 블록 기간 동안 사용할 수 있으며 문이 종료되면 자동으로 해제됩니다. 자세한 내용은 양자 메모리 관리를 참조하세요.