- 締切済み
BASIC言語について。
IF条件式THEN命令で、条件式には、>などが使われて、命令で、LETなどが使われると覚えた方が良いのでしょうか?教えていただけると幸いなのですが。すみません。 昔の数学Bです。教えていただけると幸いなのですが。
- みんなの回答 (10)
- 専門家の回答
みんなの回答
- musume12
- ベストアンサー率63% (19/30)
質問とは直接関係ないですが、No7の回答でミスがありましたので。 >※Visual Basic を起源に持つ EXCEL の VBA には Boolean 型があるの >で x を Boolean 型で宣言すれば OK だと思います。 Boolean 型で宣言しなくても OK でした。 Sub SHINGI() x = 0 If x Then Worksheets("test").Cells(3, 3) = "真" Else Worksheets("test").Cells(3, 3) = "偽" End Sub これ、ちゃんと正常に動きます。VBA では、型宣言しない変数はすべてなんでも屋の valiant 型 になるので、実行時にBoolean 型と認識するのでしょう。
- notnot
- ベストアンサー率47% (4900/10358)
条件式は > > 式なので、式なら何でもいいです。 > > IF X THEN Y=1 > > という文があれば、Xが条件式です。XがゼロでなければY=1が実行されます。 > では、Xが0でなければというところがわかりません。どういうことでしょうか?なぜ、Xはゼロではダメなのでしょうか? Xがゼロだと、THEN部分じゃなくてELSE部分が実行されますので、 > IF X THEN Y=1 のY=1は実行されません。 X=なんかの数 IF X THEN PRINT "Xはゼロでない" ELSE PRINT "Xはゼロ" を実行してみてください。 IF文とは、そういう機能です。
- musume12
- ベストアンサー率63% (19/30)
下の回答の訂正 >※Visual Basic を起源に持つ EXCEL の VBA には Bookean 型があるの >で x を Bookean 型で宣言すれば OK だと思います。 Boolean 型のまちがいでした<(_ _)>
- musume12
- ベストアンサー率63% (19/30)
> つまり、0が偽ということで、0は違うということでしょうか? 何を聞きたいのか意味不明の質問ですが、忖度して以下のように回答しておきます。 LET a = 30 LET b = 20 IF a < b THEN PRINT "真偽値は 0" ELSE PRINT "真偽値は 0 以外" end if 上のコードを実行すると BASIC は a < b(30 < 20) という偽の命題を 0 と認識し、 a > b という真の命題を 0 以外の数値として認識すると言うことです。 ただし、かつての数学B の BASIC は現在の Jis Full BASIC に相当するようなので LET x = 5 IF x THEN PRINT "真偽値は 0 以外" LET x = 0 IF x THEN PRINT "真偽値は 0" のようなコードは文法エラーとなります。 ※Visual Basic を起源に持つ EXCEL の VBA には Bookean 型があるので x を Bookean 型で宣言すれば OK だと思います。
- musume12
- ベストアンサー率63% (19/30)
> Xが0でなければというところがわかりません。どういうことでしょうか? BASIC は Pascal のような boolean 型を持たないので真偽値については 0を偽、それ以外を真として扱う というのがプログラミング言語としての仕様です。 詳細を知りたければ 「 IF文 真偽値 BASIC 」で検索。
補足
つまり、0が偽ということで、0は違うということでしょうか?確認のためですが。教えていただけると幸いなのですが。すみません。
- notnot
- ベストアンサー率47% (4900/10358)
> では、条件式とはなんなのでしょうか? IF文でIFの後に書かれる式が条件式です。 WHILE文のあるBASICならWHILEの後も。 > なぜ、条件式に、LETが来ず、 条件式はIF文でつかうもので、LET文とは別だからです。 > 命令に、>などが来ないのでしょうか? 命令は、IF、GOTO、FORなどの英単語です。> は命令ではないです。 > 条件式に>などが使われるとは限らないというのはどういうことでしょうか?例えば、何が使われたりするのでしょうか? 式なので、式なら何でもいいです。 IF X THEN Y=1 という文があれば、Xが条件式です。XがゼロでなければY=1が実行されます。
補足
では、Xが0でなければというところがわかりません。どういうことでしょうか?なぜ、Xはゼロではダメなのでしょうか?
- cse_ri3
- ベストアンサー率25% (165/640)
No.1です。Basic言語は、1964年にアメリカのダートマス大学で開発されました。 しょせんは、人の作ったものです。 一定のルールはありますが、「なぜ」と聞いたところで「そう作られたから」としか答えられません。まだ開発者は存命のようなので、伝手があれば、開発者に聞くしかないでしょう。 No.1で「プログラムは書いて覚えろ」と回答したのは、そういうこと。 他人が決めたルールなのですから、自分がそれに合わせるしかないのです。 それが不服なら、道は険しいですが、自分が新たな言語を開発して自分がルールになるしかありません。 日本人でもいますよ、言語開発者。確か「RUBY」は、日本人が開発したプログラム言語です。
- notnot
- ベストアンサー率47% (4900/10358)
どんな言語にせよ、文法は全部理解する必要があります。 条件式に > などが使われるとは限らないし、命令には let 以外にもたくさんあります。 条件式とは何であるのかを理解するのが本質であって、> が使われることもあるというのは末節にすぎません。 本質を理解していない人が、末節だけ記憶しても無意味です。
補足
では、条件式とはなんなのでしょうか?なぜ、条件式に、LETが来ず、命令に、>などが来ないのでしょうか?条件式に>などが使われるとは限らないというのはどういうことでしょうか?例えば、何が使われたりするのでしょうか?教えていただけると幸いなのですが。すみません。
- no_account
- ベストアンサー率45% (1660/3617)
基本的にLETは省略可能な命令で、変数への代入は“=“を使うので、LET自体はそれほど重要と考えなくても良いと思います
補足
とすると、IF条件式THEN命令は、条件式には、>などが来て、命令には、LETなどが来ると覚えるしかないのでしょうか?教えていただけると幸いなのですが。すみません。
- cse_ri3
- ベストアンサー率25% (165/640)
Basicですか。懐かしい。 どこかの根性論ではありませんが、プログラムは書いて覚えろ。 とにかく、サンプルプログラムを入力して、デバッガを見ながら挙動を確認する。 これが一番確実です。 まあ、趣味でされているとは思いますが、無理のない範囲で少しずつどうぞ。 仕事で覚えるのであれば、業務上の要件を除き、もっと実需のある言語をオススメします。
補足
つまり、Xがゼロでない理由は、0が、偽りの命題になるからということでしょうか?教えていただけると幸いなのですが。すみません。