ページ 1 / 1
【解決済み】ツクールの計算式に出てくる記号について
Posted: 2019年8月17日(土) 17:35
by UPV17745
初心者質問で申し訳ないんですが、調べても理解できず「?」ってなってるものがあります。
例えば以下のような式なんですが…
a.atk * 4 *(a.hp <= a.mhp / 5 ? 2 : 1) - b.def * 2
…における”?”と”:”は何を意味しているんでしょうか?(´・ω・`)
基本的な足引乗除はわかるんですが、他にもこの記号はこういう意味であるよということがあれば知りたいです。
Re: ツクールの計算式に出てくる記号について
Posted: 2019年8月17日(土) 17:49
by WTR
条件式 ? A : B
条件式が成立していればA、そうでなければBが返ってきます。
if ~ else の短縮記述と考えてよろしいかと思います。
(a.hp <= a.mhp / 5 ? 2 : 1) の部分だけ抽出すると
a の hp が mhp の 1/5 以下なら 2 で、そうでなければ 1 という感じかと
↓と同じ意味になると思います。たぶん。。
if (a.hp <= a.mhp / 5) {
a.atk * 4 * 2 - b.def * 2
} else {
a.atk * 4 * 1 - b.def * 2
}
Re: ツクールの計算式に出てくる記号について
Posted: 2019年8月17日(土) 17:56
by ツミオ
こんにちは。
その「?」や「:」は三項演算子と呼ばれています。
以下のような形式になります。
コード: 全て選択
(条件式) ? (条件式がtrueのとき実行) : (条件式がfalseのとき実行)
したがって、
コード: 全て選択
(a.hp <= a.mhp / 5 ? 2 : 1)
の意味は以下の通りです。
・「使用者の現在HP」が「使用者の最大MP/5」以下ならば「2」を返す。そうでなければ「1」を返す
もう少し分解すると、
・条件式→a.hp <= a.mhp / 5
・条件式がtrueのとき実行→2
・条件式がfalseのとき実行→1
となります。
さらに詳しく三項演算子について知りたい場合は、以下のサイトが詳しいです。
https://developer.mozilla.org/ja/docs/W ... l_Operator
以上、何か参考になりましたら幸いです。
*追記
書いてる間にすでに別の方が回答してましたね……。せっかく書いたので残しておきます。
Re: ツクールの計算式に出てくる記号について
Posted: 2019年8月17日(土) 18:15
by UPV17745
>WTR様、ツミオ様
わかりやすい説明ありがとうございます!
なるほど、if文みたいなもの、と捉えるのは分かりやすいです。
最初は比率か何かかなって思ってしまったので…
とても助かりました。ありがとうございます!