• 締切済み

IF条件式THEN命令について。

条件式は、IF文で、使うものであって、LET文で使うものではない。とはどういうことでしょうか?条件式は、どこまでなのでしょうか?教えていただけると幸いなのですが。すみません。

みんなの回答

  • QCD2001
  • ベストアンサー率59% (298/500)
回答No.5

根本的な誤解があるようです。 コンピュータに対して、ある条件が当てはまる時には甲という処理をさせ、当てはまらない時には乙という処理をさせたい。 というような場合がしばしばあります。 コンピュータは数字しか理解できないので、その「ある場合」を数式で書き表す必要があります。この「ある場合」を数式に置き換えたものを「条件式」と呼びます。 ところで、人間は前後に書いてある内容から、そこに記載されている式が条件式であるという判断をすることができます。しかし、コンピュータにはそのような判断能力がありません。そこで、コンピュータが判別可能な目印をつけます。その目印が IF THEN という文字列です。 この文字列があると、コンピュータは、「IF と THEN で挟まれた式が条件式である」と判断します。 他のところへ条件式を書いても、コンピュータはそれを条件式だと判断する能力を持っていません。 >条件式は、IF文で、使うものであって これは正確ではありません。 コンピュータはIF文で使われた式を「これは条件式だ」と判断するのです。 IF 文以外で使われた式は、「これは条件式ではない」と判断します。 そう作られているのです。だから「条件式は、IF文で、使うもの」なのです。というより「IF文で使ったもの」だけが条件式とみなされるのです。

  • musume12
  • ベストアンサー率63% (19/30)
回答No.4

> 条件式は、IF文で、使うものであって、LET文で使うものではない。  条件式は   DO WHILE~LOOP   DO UNTIL~LOOP でも使います。理由はそういう仕様なので。これは Visual Basic も同じ。詳細は https://www.koshigaya.bunkyo.ac.jp/shiraish/basic/tutorial/section3.htm#3.2 を参照。以下の3つのコードはすべて同じ結果となります。 [例1] LET A=0 DO   LET A = A + 1   PRINT A   IF A >= 10 THEN EXIT DO LOOP [例2] LET A=0 DO WHILE A < 10   LET A = A + 1   PRINT A LOOP [例3] LET A = 0 DO UNTIL A >= 10   LET A = A + 1   PRINT A LOOP

  • SI299792
  • ベストアンサー率48% (715/1480)
回答No.3

BASIC が今のVBなのか、昔のBASIC か判りません。 LET は省略できるので、省略した書き方をします。行番号も省略します。 IFの外でも、条件式を書くことができます。 結果は、Trueが-1、Fales が0になります。 例えば、 If A > 0 Then B = A Else B = 0 は B = A * -(A > 0) と書くことができます。(A > 0) はTrueの時-1、False の時0になります。 私は好きでよく使いますが、ややこしい、多言語への移植の時に困るとで、使ってはいけないといっているのだと思います。 これができるのは、BASIC とC位でしょう。 CはTrueが1なので、-を付ける必要がなく B == A * (A > 0) です。 Trueが-1なのは、ビット演算の為です。 ビット演算ができるのも、BASIC とC位でしょう。 Trueを1にすると、ビット演算と論理演算を分けなければなりません。 Cは別々です。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

>この例の意味がわかりません。 何処がわかりませんか? 10行のREM文がわからないのであれば日本語の学習が必要です。 REM文は何も実行しません。 20行からのREM文はREMから右側にその行の説明が表示されています。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.1

>条件式は、IF文で、使うものであって、LET文で使うものではない。とはどういうことでしょうか? IF文で使う条件式は比較演算式なのでLET文で変数へ代入する式とは意味合いが異なるということです。 例 10 REM 行末まで注釈(説明文) 20 LET X=1 REM 変数Xへ1を代入(格納)する。 30 IF X=1 THEN GOTO 70 REM Xが1のときは70行へ進む。 40 ELSE GOTO 60 REM Xが1以外のとき60行へ進む。 50 END IF 60 PRINT X 70 END >条件式は、どこまでなのでしょうか? IF文で使う条件式は単純なものでは変数名=値、変数名>値、変数名>=値、変数名<値、変数名<=値、変数名<>値、等があります。 値の部分に計算式が使われることもありますので、「IF 条件式 THEN 実行」ではIFとTHENの間に記述された部分になります。

zasx1098
質問者

補足

この例の意味がわかりません。教えていただけると幸いなのですが。すみません。

関連するQ&A

  • 「IF (条件式) OR _(条件式)THEN」の「_」(アンダーバー

    「IF (条件式) OR _(条件式)THEN」の「_」(アンダーバー)は何故存在する? 他人が作ったエクセルのマクロの式をちょっと直したい素人のものですが、 直そうと思うマクロの式に_(アンダーバー)があり、これは何のためにあるのでしょうか? 条件を増やしたいだけなのですが、例えば2つ条件式を追加したいとしたら、 「IF (条件式) OR _(条件式)OR _(条件式)OR _ (条件式)THEN」」というように アンダーバーを付けるものなのでしょうか? 宜しくお願いいたします

  • if [ 条件式 ]とif[[ 条件式 ]]

    シェルスクリプトでのif [ 条件式 ] と if [[ 条件式 ]] の違いについて教えてください。 以下のシェルスクリプトを実行すると、 意図したとおり、111 と出力されます。 =========▼▼(ここから)▼▼========= #!/bin/sh AAA=yes if [[ "$AAA" = [yY]* ]] then echo 111 else echo 222 fi =========▲▲(ここまで)▲▲========= 上記、スクリプト3行目の if [[ "$AAA" = [yY]* ]] の部分を if [ "$AAA" = [yY]* ] というように、角カッコ 1重にすると、 エラーは発生しませんが、 222と表示されます。 if [ 条件式 ] と if [[ 条件式 ]] の違いについて教えていただけないでしょうか。

  • perl のif文(条件式)内に代入式は使えない?

    例えば、$a =1 という代入式を、if 文の条件式として、( $a = 1){ } とするとエラーが出ますが、代入式はif文の条件式として使えないのですか?

    • ベストアンサー
    • Perl
  • 条件付きコンパイル: #IF 1 Then と #IF 0 Then

    条件付コンパイルで、 『#If 1 Then』と『#If 0 Then』の条件の違いを教えてください。 『#If ○○○=1 Then』などの場合はわかるのですが、 単に『#If 1 Then』の場合は何をもって真となるのでしょうか? よろしくお願いいたします。

  • PerlでIF文の条件式をもっとスマートに書きたい

    PerlでIF文の条件式をもっとスマートに書きたいのですが。。。 以下のようなIF文の条件式を上手く書く方法がありますでしょうか? if($flg[0] == 1 || $flg[1] == 1 || $flg[2] == 1 || $flg[3] == 1 || $flg[4] == 1 || $flg[5] == 1 || $flg[6] == 1 || $flg[7] == 1 || $flg[8] == 1 || $flg[9] == 1)){ $flg[i]は配列@flgの各要素です。 上記のように「||」(論理和:または)でつないで書くのではなく、 もっとスマートに書きたいのですが、 何か良い方法はないでしょうか?? ご存じの方がいらっしゃいましたら、どうかご教示ください。 よろしくお願い致します。

  • if文の条件式について

    iPhone OS 3.0、Xcode 3.1.3という環境でobjective-cをベースとしてiPhone向けアプリケーションを作る研究をしています。 どちらかというとC言語の質問になりますが、if文で使う条件式にNSString型で宣言した文字列を使うにはどうすればいでしょうか? NSString *startArea = [[NSString alloc] initWithFormat:@"pt.x > 224 && pt.y < 100"]; というコードでstartAreaに代入されたpt.x > 224 && pt.y < 100という文字列をif文の条件式として使えればと思ってます。 ちなみに、、、 if( startArea ){ 実行したい命令 } という記述をしたところ、ビルドエラーは発生しませんでしたが条件が無視されてしまいました。 他にコードの間違いがあるかもしれませんが、まずはこの内容で判断をお願いします。

  • If … then の中の条件式と型について

    超初心者のふつつか者です。^^; Dim rc as Long rc = DB_Sub_Select(SQL) If rc Then … 以上のようにコードの一部がなっているのですが、rcはLong型と定義されているので、If rc Then との記述の中ではBoolean 型に自動的に型の変換がされていると考えていいのでしょうか。 また、Ifのあとは条件式が普通ですが、これは、rc=true の省略形なのでしょうか。 MSDNなど検索してみたのですが、うまくみつけられなかったです。

  • 条件分岐(if)について

    条件分岐(if)についてお聞きしたことがあります。 例えば if($a == 'A' || $a == 'B'){ 処理 }else if($a == 'C' || $a == 'D' || $a == 'E'){ 処理 }............... といった条件分岐があったとて、お聞きしたいことが2点あります。 ・条件分岐この後も数十個続いたとします。その場合もelse ifで一つ一つ 条件を書かなければならないのでしょうか? ・条件式if($a == 'A' || $a == 'B'....)が長くなる場合プログラムが見にくくなるので 別途に条件式を書いておいてif文の所では($a == ◯)といったように簡潔に書くことは できないのでしょうか? 宜しくお願いします。

    • ベストアンサー
    • PHP
  • ifの条件式

    お世話になります。初歩的な質問とは思いますが、どうぞよろしくお願いします。 HTMLでのフォームの一部に次のようなラジオボタンの記述をしています。どちらか選んでCGIに渡し、「試験1」を選んだなら処理1を、「試験2」を選んだなら処理2を行いたいのですが、ifの条件式の書き方(ラジオボタンで選んだ方の値を受け取る変数の書き方)が分かりません。 ----HTML----------------------------------------- <input type="radio" name="test" value="テスト1"> 試験1 <input type="radio" name="test" value="テスト2"> 試験2 ----CGIスクリプトの一部-------------------------- if( ? ? ? =="テスト1"){ 処理1 }else{ 処理2 } ----------------------------------- ifの条件式の書き方を教えて下さい。 よろしくおねがいします。

    • ベストアンサー
    • Perl
  • if文の条件式の書き方について

    現在VC++2005でプログラムを作成しています。 そこであるテキストファイルをテキストボックスに表示してからその表示されている内容の1行目をif文を使って判断するというものを作っています。 そこで、質問なのですがif文の条件を作るときに文字列として条件を入れたい場合はどのようにしたら良いのでしょうか? 現在は7:00ならばというものなのですが、読み込んだ文字列に7:00以外のものが入っていてもそのまま判断されてしまうのできっと条件式のところが問題だと思うのですが。 下に作成中のコードを書きますので、良かったらご教授お願いします。 ********************************************************* String^ ss; ss=textBox3->Text; ss=textBox3->Lines[0]; textBox5->Text=ss; String^ time; time=textBox5->Text; if (char time='7:00'){ MessageBox::Show("7時"); } else { MessageBox::Show("ミス"); } **********************************************************