Podmíněné větvení
Podmíněné větvení se vyjadřuje ve formě if
výrazů. Výraz if
se skládá z if
klauzule, za kterou následuje nula nebo více elif
klauzulí a volitelně blok else.) Každá klauzule se řídí vzorem.
keyword condition {
<statements>
}
kde keyword
se nahradí if
condition
elif
nebo , je výraz typu Bool
a <statements>
má být nahrazený nulou nebo více příkazy. Volitelný else
blok -se skládá z klíčového slova else
, za kterým následuje nula nebo více příkazů uzavřených ve složených závorkách {
}
.
První blok, pro který se condition
vyhodnotí jako true
, se spustí. Blok else
, pokud existuje, se spustí, pokud se žádná z podmínek nevyhodnotí jako true
. Blok se provádí ve vlastním oboru, což znamená, že žádné vazby vytvořené v rámci bloku nejsou po skončení bloku viditelné.
Předpokládejme například, že qubits
je hodnota typu Qubit[]
a r1
a r2
jsou typu Result
,
if r1 == One {
let q = qubits[0];
H(q);
}
elif r2 == One {
let q = qubits[1];
H(q);
}
else {
H(qubits[2]);
}
Můžete také vyjádřit jednoduché větvení ve formě podmíněného výrazu.
Omezení specifická pro cíl
Úzká integrace mezi konstrukcemi řízení a tokem a kvantovými výpočty představuje pro současný kvantový hardware výzvu. Některé kvantové procesory nepodporují větvení na základě výsledků měření. Porovnání hodnot typu Result
proto vždy způsobí chybu kompilace pro Q# programy, které jsou určené pro spuštění na tomto hardwaru.
Jiné kvantové procesory podporují specifické druhy větvení na základě výsledků měření. Obecnější if
výrazy podporované v nástroji Q# jsou zkompilovány do vhodných instrukcí, které lze spustit na těchto procesorech. Vynucená omezení jsou, že hodnoty typu Result
lze porovnávat pouze jako součást podmínky v rámci if
výrazů v operacích. Bloky podmíněného spuštění navíc nemohou obsahovat žádné return
výrazy ani aktualizovat měnitelné proměnné, které jsou deklarovány mimo daný blok.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro