共用方式為


條件分支

條件式分支是以表達式的形式 if 表示。 if表達式是由 if 子句所組成,後面接著零個或多個elif子句,並選擇性地包含 else-block。 每個子句都遵循模式

keyword condition {
    <statements>
}

其中 keyword 會分別取代為 ifelif ,是 型Bool別 的表達式,condition<statements> 會取代為零個或多個語句。 選擇性 else-block 是由 關鍵詞 else 所組成,後面接著以大括弧 { }括住的零個或多個語句。

評估為 true 要執行的第一個區塊condition。 如果沒有任何條件評估為 true,則else區塊會執行。 區塊會在自己的範圍內執行,這表示區塊結束之後,不會顯示做為區塊一部分的任何系結。

例如,假設 qubits 是型 Qubit[] 別的值,且 r1 r2 的類型為 Result

if r1 == One {
    let q = qubits[0];
    H(q);
} 
elif r2 == One {
    let q = qubits[1];
    H(q);
} 
else {
    H(qubits[2]);
}

您也可以以條件表示式的形式表示簡單的分支。

目標特定限制

控制流程建構與量子計算之間的緊密整合對目前的量子硬體構成挑戰。 某些量子處理器不支持根據測量結果進行分支處理。 因此,類型 Result 值的比較一律會導致針對目標在這類硬體上執行的程式發生編譯錯誤 Q# 。

其他量子處理器會根據度量結果支援特定種類的分支。 中Q#支援的較一般if表達式會編譯成可在這類處理器上執行的適當指令。 加總的限制是,型 Result 別的值只能比較為作業中表達式內 if 條件的一部分。 此外,有條件地執行區塊不能包含任何 return 表達式或更新在該區塊外部宣告的可變數。