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


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0423
通りすがりif命令の挙動1解決


通りすがり

リンク

2009/4/23(Thu) 21:57:10|NO.24774

if命令を使った次のスクリプトで

a=1
b="1"
if a==b :mes "True"

を実行すると、実行結果は
True

になります。
人間から見ればどちらも1なので正しいけど
論理的には文字列=数値は多分Falseじゃないかな?



この記事に返信する


SYAM

リンク

2009/4/23(Thu) 23:31:55|NO.24775

数式は自動的に最初の項の型にあわせちゃうんですねー。


a=0 b="a" if a==b :mes "True (a==b)" if b==a :mes "True (b==a)"

a==bはおそらく 0 == 0 と解釈されるので成り立ちますが、
b==aはおそらく "a"=="0" と解釈されていて成り立ちません。

そのまま比較するというのであれば、論理的にはそもそも比較ができないものですからエラーになるのが正しいかもしれませんね。



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