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


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
0714
撲殺ガキ大将入力規則 if分は改行しないといけないのか1未解決


撲殺ガキ大将

リンク

2021/7/14(Wed) 02:43:25|NO.93220

こんにちは。こんばんは
スクリプトをなるべく美しく書きたいな〜と思う今日この頃なのですが、
if分を使う場合に無駄に改行しないといけないのかと困っております。


if a=0 {} else { if a=1 }

上記の様に改行がはいるとコードが醜くなるので
下記の様に修正したいのですが、エラーとなります。


if a=0 {} else {if a=0} // error 16 : if命令以外で{〜}が使われています

しかしながら、


if a=0 {} else {}

上記のコードであればエラーが出ないので
if分に"{}"を付加した場合、内部的にどういった判定が行われているのか
知る必要があると思いました。

1行目のif文で偽を吐き出し、
2行目のelseで偽となっているので"{"の次のif文が実行対象となるのではないのでしょうか。

お詳しい方、お教えいただけると大変有り難いです。
よろしくお願いいたします。



この記事に返信する


usagi

リンク

2021/7/14(Wed) 05:59:20|NO.93221

改行しなくても良いと思います。
2行目のif分の{}が足りないのでエラーになってますね。
if a=0} という書き方は出来ないので
if a=0{} と書く必要があります。
それを "else" で囲む訳ですから

if a=0 {} else {if a=1{}}
となります。
※このように書けば、else前の改行消して1行でも書けます。

美しく書きたいとのことなので、おそらくelseif っぽい書き方をしたのであれば以下とかどうでしょうか?
カッコの数が減って見やすそうな気がします。

// その1 if a=0 { mes "0" } else : if a=1{ mes "1" } //その2 よく使うならマクロ定義しておく #define elseif else : if if a=0 { mes "0" } elseif a=1 { mes "1" }

本題とは違いますが、このような場合だったらswitch使ったほうが美しいかもですね。


switch a case 0 : mes "a=0" : swbreak case 1 : mes "a=1" : swbreak case 2 : mes "a=2" : swbreak swend



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.93220への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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