guard文は、if文のように、式の結果のBool値により処理を場合わけします。条件式がtrueの場合にguard文の(ブロックの)後ろのコードが確実に実行したい場合にguard文を使用します。if文と違い、guard文は常にels節が必要です。条件式がtrueでない場合にelse節が実行されます。
もしguard文の条件式がtrueの場合、guard文のブロックの終わりの
}
の次から実行が続いていきます。条件式の一部としてオプショナルバインディングを用いて、変数あるいは定数に値を代入すると、guard文(のブロック)より後のコード内でその変数あるいは定数を利用できます。
guard文の条件式がfalseの場合、else節内が実行されます。else節のどこかで必ずelse節(guard文)が存在するブロックの外に移行する必要があります。制御をブロック外に移行するのにreturn,break,continue,throwなどが使えます。
必要な時にguard文を使用することは、同じことをif文を使用して実装するのと比べて、コードの可読性の向上が期待できます。
else節内で条件に違反した場合の処理を記述できますし、条件に合致した場合の処理をelse節の下に記述することができます。
参考
https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html