![見出し画像](https://assets.st-note.com/production/uploads/images/157093435/rectangle_large_type_2_e3ac039503486776615fd119e7d5cfaf.png?width=1200)
【RPGツクールMZ】変数の条件式について
Xでこういうポストを投稿したら、思いのほか色々な人から反応が来たので、保存版としてnoteに載せておくことにしました。
#RPGツクールMZ のこの条件式、変数に文字列型の「1」が入っているとtrue判定されないんすね(数値型にキャストして代入するとtrueになった)
— 遠藤なお🐬 (@mirarusaka) October 6, 2024
データ型はきっちり管理しとかないといかんね pic.twitter.com/rHBuaGbs1a
このポストに至るまでの経緯
スクリプトであれこれ加工した数値を変数に代入し、デフォルトの条件分岐で判定する処理を作っていました。
そんな時…
「変数に数値が正しく入っているのに条件式が機能しないぞ!?」
という事象が発生しました。
(今回の場合、スクリプトで数値の「1」を代入した変数Aに対して「変数A = 1」の条件を設定)
なんとなく「データ型の問題だろうなぁ」と思ったので、スクリプト側で代入時に数値型にキャストして代入すると正常に動きました。
結論
ツクールのデフォルトの条件式は「===(型完全一致)」で組まれているのだと思います。
もし、変数に正しい数値が入っているのにデフォルトの条件式がうまく動かない場合、データ型をチェックしてみるといいと思います。
(この説明がよくわからない方は、スクリプトで変数を代入しないようにすれば解決します)
【余談】データ型ってなに?
コンピュータやプログラムは様々なデータによって動いています。
しかし、それらのデータがどういう種類なのかはコンピュータはわかりません。
なので、全てのデータを「型」に分類して判別できるようにしています。
データ型には「数値」「日付」「文字列」などがあります。
詳しくはこっち読んでくださいな。