HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2018
0612
エイカif文の入れ子?にした時にエラーが出る7解決


エイカ

リンク

2018/6/12(Tue) 10:23:32|NO.84591

どうも、お世話になっております

自分でもよくわかってないのですが
こうした時に、「パラメーターの数が多すぎます」エラーが出ます

入れ子?の時は、このようなelseの使い方はしてはいけないのでしょうか?
良く分かりません

アドバイスお願いします。


if (宝玉+現在消費宝玉数)-宝玉使用数>=0:宝玉実行可能=1{ }else 宝玉実行可能=0:goto *宝玉実行判定終了 if 宝玉使用数<0:if 宝玉使用数<=現在消費宝玉数:宝玉実行可能=1{ }else 宝玉実行可能=0:goto *宝玉実行判定終了 if 宝玉使用数>0:if 宝玉使用数<=宝玉:宝玉実行可能=1{ }else 宝玉実行可能=0:goto *宝玉実行判定終了 if (宝玉選択中=4)or(宝玉選択中=5)or(宝玉選択中=6){ if (現在消費宝玉数+宝玉使用数)<=100:宝玉実行可能=1:else 宝玉実行可能=0:goto *宝玉実行判定終了 }



この記事に返信する


エイカ

リンク

2018/6/12(Tue) 10:34:42|NO.84592

これのほうが正しいのかな?


if (宝玉+現在消費宝玉数)-宝玉使用数>=0:{宝玉実行可能=1 }else 宝玉実行可能=0:goto *宝玉実行判定終了 if 宝玉使用数<0:if 宝玉使用数<=現在消費宝玉数:{宝玉実行可能=1 }else 宝玉実行可能=0:goto *宝玉実行判定終了 if 宝玉使用数>0:if 宝玉使用数<=宝玉:{宝玉実行可能=1 }else 宝玉実行可能=0:goto *宝玉実行判定終了 if (宝玉選択中=4)or(宝玉選択中=5)or(宝玉選択中=6){ if (現在消費宝玉数+宝玉使用数)<=100:宝玉実行可能=1:else 宝玉実行可能=0:goto *宝玉実行判定終了 }



エイカ

リンク

2018/6/12(Tue) 10:41:35|NO.84593

これでも、エラー吐きます


if (宝玉+現在消費宝玉数)-宝玉使用数>=0:{宝玉実行可能=1 }else 宝玉実行可能=0:goto *宝玉実行判定終了 if 宝玉使用数<0:if 宝玉使用数<=現在消費宝玉数:{宝玉実行可能=1 }else 宝玉実行可能=0:goto *宝玉実行判定終了 if 宝玉使用数>0:if 宝玉使用数<=宝玉:{宝玉実行可能=1 }else 宝玉実行可能=0:goto *宝玉実行判定終了 if (宝玉選択中!4)and(宝玉選択中!5)and(宝玉選択中!6):goto *宝玉実行判定終了 if (現在消費宝玉数+宝玉使用数)<=100:宝玉実行可能=1:else 宝玉実行可能=0:goto *宝玉実行判定終了



ソラ

リンク

2018/6/12(Tue) 11:25:07|NO.84594

HSPは少し文法が違います。
エイカさんの書き方がどの言語なのかわからないので解釈に間違いがあるかもしれません。
とりあえず推測で、HSPの書き方に直しました。
elseは以下のように書きます。

if (宝玉+現在消費宝玉数)-宝玉使用数>=0:{ 宝玉実行可能=1 }else{ 宝玉実行可能=0:goto *宝玉実行判定終了 } if 宝玉使用数<0:{ if 宝玉使用数<=現在消費宝玉数:{ 宝玉実行可能=1 }else:宝玉実行可能=0 }

また、elseにさらに条件を追加することは出来ません。
elseの後に更に条件を追加したい場合はこのように書きます。

if (宝玉+現在消費宝玉数)-宝玉使用数>=0:{ 宝玉実行可能=1 }else{ if 新たな条件:宝玉実行可能=0:goto *宝玉実行判定終了 }

ifの書き方は以下のサイトが参考になるかと思います。
http://kouza.hamuinu.com/wiki_page/HSP%E8%AC%9B%E5%BA%A7/HSP%E3%81%AE%E5%9F%BA%E6%9C%AC%E7%B7%A8/%E7%AC%AC10%E7%AB%A0%20%E6%9D%A1%E4%BB%B6%E5%88%86%E5%B2%90



エイカ

リンク

2018/6/12(Tue) 11:45:54|NO.84595

回答有り難うございます!

私が

{ }
の使い方がかなり乱暴だったみたいですね
よくわかりました!

ありがとうございます



Velgail

リンク

2018/6/12(Tue) 18:56:34|NO.84597

ソラさんのも動くけど、C++民化した私から見ると嫌なコードでw(すみません)
絶対コロン使わない主義(例外はelse:if)でif(条件式)派なので、こうなります。

ワンライナー方式は挙動が怪しい(書きにくいという意味)ので、こちらを推奨するよ(というC派の陰謀?)

if ((宝玉+現在消費宝玉数)-宝玉使用数>=0){ 宝玉実行可能=1 }else{ 宝玉実行可能=0 goto *宝玉実行判定終了 } if (宝玉使用数<0){ if (宝玉使用数<=現在消費宝玉数){ 宝玉実行可能=1 }else{ 宝玉実行可能=0 } }



ソラ

リンク

2018/6/12(Tue) 19:10:53|NO.84598

さっきのサンプルコードで:{って書き方したのはエイカさんの書き方に合わせだけですね。

普段は、自分ははどちらかというと最小限の文字数で書く派ですかね。
なので普段{}使うときはコロンは省略することが多いです。
処理が短い場合は{}使わずにコロン使って1行で記述したほうが文字数が少なく済むので、
必ずコロン使わないってわけではないですが。



エイカ

リンク

2018/6/12(Tue) 19:36:44|NO.84599

お二人ともありがとうございます
参考になりますー。



ONION software Copyright 1997-2021(c) All rights reserved.