Re: 本体の起動について
toshi
投稿数: 1540
takehiroさん、samさん
こんばんは。toshiです。
takehiroさん:
if文の解説をしていただき、ありがとうございました。
おかげさまで少し理解が深まりました。
私、本当にプログラムのことは良く知らない人でして、プログラムのソースを見るのはFlightGear関連の動作を調べるときくらいですので、ご助言をいただけるのはとても助かります。
良く見るif文の形式は、
ですが、実は
と同じことであり、条件式の部分は比較演算子が判定してtrueかfalseの論理値を返し、if文は、論理値がtrueなら文1を、falseなら文2を実行する、というように私は理解しました。
納得です。
samさん:
私の先の投稿で、
引用:と書きましたが、いい加減な理解の下で書いていましたので、この部分を改めて考えてみました。
まず、前にも書きましたが、/sim/model/start-idlingはブール型のプロパティです。
次に、nasalのgetprop()は、ブール型のプロパティを引数にとると、数値の1か0に変換します。
# ブール型のtrueやfalseではありません。
参考: Using Nasal with FlightGear
http://www.plausible.org/nasal/flightgear.html
このことから、if(getprop("/sim/model/start-idling")== 0) という文法は問題ないと言えると思います。
一方、if(getprop("/sim/model/start-idling"))という文法は、getprop("/sim/model/start-idling")は1か0ですので、確かにちょっと気になります。
# samさんの最初の質問に戻ってしまいました...
nasalのif()が、論理値falseを0、論理値trueを1で表すことを許容してくれるかどうか、がポイントだと思います。
# 他の言語(処理系?)では、論理値falseを0、論理値trueを「0以外の整数」で扱う場合があるようです。
nasalのif()の定義については、ちゃんとした説明を見つけられていないのですが、nasalのページには以下のような例があることから、きっと許されているのだろうと想像します。
また、if(getprop("/sim/model/start-idling"))という書き方を良く見かけることからも、きっと問題ないだろうと思いますが、確証があるわけではありません。
参考: Nasal: Not another scripting language!
http://www.plausible.org/nasal/doc.html
ただし、注意していただきたいことは、
if(getprop("/sim/model/start-idling")) [
が許されるなら、1はtrueと同義、0はfalseと同義になるように動作するはずだ、ということです。
したがって、条件式を使って同じ動作を表すように書き直すと、
if(getprop("/sim/model/start-idling")== 0)
ではなく、
if(getprop("/sim/model/start-idling")== 1)
とする必要があります。
p.s. samさんに、ジョイスティックの動作について教えていただきたいことがあります。
http://flightgear.jpn.org/modules/d3forum/index.php?post_id=2254 に質問を書きましたので、お読み頂けますと幸いです。
こんばんは。toshiです。
takehiroさん:
if文の解説をしていただき、ありがとうございました。
おかげさまで少し理解が深まりました。
私、本当にプログラムのことは良く知らない人でして、プログラムのソースを見るのはFlightGear関連の動作を調べるときくらいですので、ご助言をいただけるのはとても助かります。
良く見るif文の形式は、
if(条件式)
文1
else
文2
if(論理値)
文1
else
文2
納得です。
samさん:
私の先の投稿で、
引用:
samさんは、787/Nasal/system.nasにある
if(getprop("/sim/model/start-idling")) [
を
if(getprop("/sim/model/start-idling")== 0) [
にするのが【文法的に】正しいのではないか、とお考えになったのでしたね、
私は、そのどちらも【文法的に】正しいと思います。
まず、前にも書きましたが、/sim/model/start-idlingはブール型のプロパティです。
次に、nasalのgetprop()は、ブール型のプロパティを引数にとると、数値の1か0に変換します。
# ブール型のtrueやfalseではありません。
参考: Using Nasal with FlightGear
http://www.plausible.org/nasal/flightgear.html
このことから、if(getprop("/sim/model/start-idling")== 0) という文法は問題ないと言えると思います。
一方、if(getprop("/sim/model/start-idling"))という文法は、getprop("/sim/model/start-idling")は1か0ですので、確かにちょっと気になります。
# samさんの最初の質問に戻ってしまいました...
nasalのif()が、論理値falseを0、論理値trueを1で表すことを許容してくれるかどうか、がポイントだと思います。
# 他の言語(処理系?)では、論理値falseを0、論理値trueを「0以外の整数」で扱う場合があるようです。
nasalのif()の定義については、ちゃんとした説明を見つけられていないのですが、nasalのページには以下のような例があることから、きっと許されているのだろうと想像します。
また、if(getprop("/sim/model/start-idling"))という書き方を良く見かけることからも、きっと問題ないだろうと思いますが、確証があるわけではありません。
if(1) {
var i=1234;
for(var i=0; i<10; i+=1) {}
print(i); # i==10 here, not 1234!
}
http://www.plausible.org/nasal/doc.html
ただし、注意していただきたいことは、
if(getprop("/sim/model/start-idling")) [
が許されるなら、1はtrueと同義、0はfalseと同義になるように動作するはずだ、ということです。
したがって、条件式を使って同じ動作を表すように書き直すと、
if(getprop("/sim/model/start-idling")== 0)
ではなく、
if(getprop("/sim/model/start-idling")== 1)
とする必要があります。
p.s. samさんに、ジョイスティックの動作について教えていただきたいことがあります。
http://flightgear.jpn.org/modules/d3forum/index.php?post_id=2254 に質問を書きましたので、お読み頂けますと幸いです。
投票数:9
平均点:5.56
投稿ツリー
-
本体の起動について
(r.naka, 2008-12-16 16:49)
- Re: 本体の起動について (zero1962, 2008-12-16 21:30)
-
Re: 本体の起動について
(r.naka, 2008-12-17 17:09)
- Re: 本体の起動について (Tat, 2008-12-18 5:57)
- Re: 本体の起動について (r.naka, 2008-12-19 23:44)
-
Re: 本体の起動について
(sam, 2009-3-24 12:38)
-
787の起動について(Re: 本体の起動について)
(toshi, 2009-3-25 2:01)
- Re: 787の起動について(Re: 本体の起動について) (toshi, 2009-3-27 2:17)
-
787の起動について(Re: 本体の起動について)
(toshi, 2009-3-25 2:01)
- Re: 本体の起動について (sam, 2009-3-25 10:56)
- Re: 本体の起動について (sam, 2009-3-25 11:40)
- Re: 本体の起動について (sam, 2009-3-27 10:44)
-
Re: 本体の起動について
(takehiro, 2009-3-27 18:20)
- Re: 本体の起動について (MiYABi, 2009-3-27 20:09)
- Re: 本体の起動について (toshi, 2009-3-29 2:45)
- Re: 本体の起動について (sam, 2009-3-28 11:22)
- Re: 本体の起動について (takehiro, 2009-3-29 0:25)
- Re: 本体の起動について (sam, 2009-3-29 9:55)
- Re: 本体の起動について (takehiro, 2009-3-29 23:15)
- Re: 本体の起動について (sam, 2009-3-30 22:41)
- Re: 本体の起動について (takehiro, 2009-3-31 0:10)