体験において、しばしば多くの原因と結果の関係があります。例えば:
- プレイヤーが10ポイントを獲得した場合、ゲームに勝ちます。
- プレイヤーがパワーアップを持っている場合、超速で走ることができます。
- プレイヤーがチャットで「お誕生日おめでとう」と言った場合、紙吹雪が降ります。
スクリプトはこのような状況を処理するために条件文を使用します。 条件文 は、特定の条件が真である場合にのみ実行されるコードの行です。条件文の一種類が if/then文 です。Luauでは、if文の構文パターンは次のようになります:
if then構文if "何かが起こる" then-- 他の何かを起こすend
条件を使用したコードの塊は 制御構造 です。制御構造は、コード形式のフローダイアグラムのようなもので、複数の条件文を含むことができます。
If文の練習
以下の手順では、条件が真の場合にパーツの色を変更するスクリプトの作成方法を示します。
ServerScriptService 内に新しいスクリプトを作成し、TruthCheckerという名前を付けます。スクリプトに適切なコメントを追加します。
-- 条件が真の場合にパーツを変更しますLieDetectorという新しいパーツを作成します。
if文のフォーマット
条件 はさまざまな形のものがありえますが、通常は数学の方程式のような簡単な文です。例えば、1 + 1が2に等しい場合に何らかのコードを実行します。通常の数学の方程式と同様に、条件文は 演算子 (プラス(+)や小なり(<)など)を使用して文を評価できます。
特に注意すべき演算子は == です;これは「等しい」を表します。したがって、文 2 + 2 == 4 は「二たす二は四に等しい」と読まれます。新しい値を変数のようなオブジェクトに割り当てる=と混同しないように注意してください。
空の条件文を設定します。スクリプト内で if then と入力し、Enterを押して条件文をオートコンプリートします。コードが不完全なため、キーワード then は下線付きになります。
if then-- 空のコードendキーワード if の後に、真の文を入力します。例えば 3 + 3 == 6 のように。
if 3 + 3 == 6 then-- 空のコードend条件内で、LieDetectorという名前のパーツを参照し、そのパーツの Color プロパティを緑色に変更します。
if 3 + 3 == 6 thenworkspace.LieDetector.Color = Color3.fromRGB(0, 255, 0)endコードをテストします。もし三たす三が六に等しければ、そのパーツは緑色に変わります。
偽の条件を確認する
次に、意図的に文を変更して、数学の方程式が偽の場合に何が起こるかを見てみましょう。
if文内で方程式を不正確なものに変更します。例えば 3 + 3 >= 10 のように。
if 3 + 3 >= 10 thenworkspace.LieDetector.Color = Color3.fromRGB(0, 255, 0)end今度はコードをテストします。偽の文の場合、パーツは緑色にならないはずです。
数学の演算子
以下の表は一般的なLuau演算子をリストアップしています。演算子に関する詳細はLuau Operatorsで確認できます。
| シンボル | 意味 |
|---|---|
| + | 加算 |
| - | 減算 |
| * | 乗算 |
| / | 除算 |
比較演算子
- == : 等しいです。
- ~= : 等しくないです。
- < または > はそれぞれ小なりまたは大なりとして使用される。
- <= または >= はそれぞれ小なりまたは大なり又は等しいとして使用される。
変数とプロパティ
条件文はまた、プロパティや変数の状態を評価するために使用されます。以下の手順は、変数が正常に値を割り当てられたかどうかを確認します。
コードをすべて削除し、以下のコードスニペットをスクリプトにコピーします。テストして、新しいエラーがOutputに表示されるか確認します。
local mysteryPart = workspace.MysteryPart-- MysteryPartが正常に割り当てられた場合は真として評価されるif mysteryPart thenworkspace.LieDetector.Color = Color3.fromRGB(0, 255, 0)endWorkspaceに新しいパーツを追加し、名前をMysteryPartにします。もう一度テストし、LieDetectorが緑色に変わります。
プロパティが条件文を使ってどう評価できるかを探ります。MysteryPartを保持し、もう一度コードを削除して以下のコードをコピーします。
local mysteryPart = workspace.MysteryPart-- MysteryPartが完全に不透明な場合は真として評価されるif mysteryPart.Transparency == 0 thenworkspace.LieDetector.Color = Color3.fromRGB(0, 255, 0)mysteryPart.Transparency = .2endコードをテストします。もしMysteryPartがデフォルトの透明度0を持っていれば、ノーカラーボタンは透明になり、LieDetectorが緑色になります。
まとめ
条件文は、文が正確であるかを確認し、正しければコードを実行します。if文は非常に一般的な種類の条件文です。「これが真なら、あれをしなさい」というパターンを使用します。
条件文を使用したコードの塊は制御構造と呼ばれます。制御構造は複数の条件文を保持できます。
単純な数学の文が事実であるかを評価するだけでなく、条件文はまた変数とプロパティの状態を確認するためにも使用されます。