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


HSPTV!掲示板


未解決 解決 停止 削除要請

2024
0105
まるんな前任が作ったHSPのif文と変数の意味がわからない4解決


まるんな

リンク

2024/1/5(Fri) 09:23:24|NO.100975

お世話になります。
前任が作ったHSPコードを引き継ぎ資料もなく改変する必要があり
凄く長いソースを読み込んでいる段階ですが、
if文がわからないため質問させてください。

サンプルとして以下ソースを載せます。

*label_010 if(0){ ver_100++ } if(var_101==15|ver_100){ ver_100=0 goto *label_20 goto *label_30 ver_100++ } if(var_101==30|ver_100){ ver_100=0 goto *label_25 goto *label_30 ver_100++ } //以下、同じようなif文が続いたあと最後にif文 if(1){ goto *label_30 } *label_30 return *他のラベル//略

label_30は、waitの役割なのかなと思っています。
ver_100というのは、このラベル上以外では出てきません。

if(0) や if(1)、そして OR判定の「var_100」は
特に意味がないものだと思っていいでしょうか?

if文なのに変数等との比較がされていないですし、
Booleanでもないvar_100をORで入れたところで
var_100には何かしらの数値が入っているものだと思っているため
FALSE?何も判定されないと思っています。

labelはlabel_001からlabel_200とかで命名されてるし
varもvar_001からvar_200まであり、コメントも書いてないので
1から確認しなきゃならないので物凄く読みづらい修正が大変すぎて、前任者を恨みたい…
愚痴すみません。

聞きたいことをまとめると、
「if文の判定に、数値のみ、もしくは変数のみをおいた場合に
 if文がTRUEになることはあるのか」を教えてください。

よろしくお願いいたします。



この記事に返信する


buhio

リンク

2024/1/5(Fri) 09:35:28|NO.100976

再確認も込めて試しました。

var_100=1 //true ;var_100=0 //false ;var_100=0.5f //false ;var_100=1.5f //true ;var_100=-100 //false ;var_100="あ" //型エラー if var_100 { dialog var_100 } if 1 {//必ずtrue dialog "1" }



まるんな

リンク

2024/1/5(Fri) 11:20:49|NO.100977

buhio様

ありがとうございます!
なるほど、1にしたら必ず通るんですね。
ifを書く意味はないと……。
if(0)は、どうあがいてもtrueにならないと……。
なぜ書いたんだろほんと。

そしてor判定で入れてるから、毎回上から1番目だけが実行されるのかもですね。
ifを大量に書いてるので大幅書き直しです。

ありがとうございました!
また何かわからない箇所あったら相談させていただきます!



まるんな

リンク

2024/1/5(Fri) 11:21:17|NO.100978

解決済み忘れてました、申し訳ありません。



にょろきち

リンク

2024/1/5(Fri) 12:19:25|NO.100979

たぶんデバッグ用ですね。
変数に値が欲しい時は0→1に変えてデバッグ実行とかそんな感じで使っていたのだと思います。
label_30のところは1→0に変えて更に式を追加するのかと。
例えば mes や dialog で変数の内容をチェックしたり、他のラベルにジャンプしてデバッグに不要な部分を省いたりですかね。



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