• ベストアンサー

if (m == 1 || 2)の意味は?

変数mが1と2の時にif文内が実行されるようにしたつもりが mが5の時なんかにもif文内が実行されてしまいます。 これでは、そのような意味にはならないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

> 変数mが1と2の時にif文内が実行されるようにしたつもりが if (m == 1 || m == 2) の誤りです。 > mが5の時なんかにも if (m == 1 || 2)の場合は、mが1か、または、常に真のときという意味合いになり、結局、ifの中は、常に真になってしまいます。

noname#9262
質問者

お礼

回答ありがとうございました。 なるほど。。そういう意味だったのですね。 ところで。。すご~い!!^^ No.1とNo.2が逆になってるぅぅぅ!!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • ranx
  • ベストアンサー率24% (357/1463)
回答No.3

(m==1||2) は、「m=1の時」または「2の時」という意味です。 「2の時」って何?ということになりますが、C言語では、 ゼロが偽で、それ以外は真と決められています。 よって、これはmの値に関係なく真となります。

noname#9262
質問者

お礼

回答ありがとうございました。 面倒で省略してしまったのがまずかったみたいですね。。 でも、勉強になりました。

全文を見る
すると、全ての回答が全文表示されます。
  • kz2960
  • ベストアンサー率21% (33/154)
回答No.2

if (m == 1 || m ==2 ) では駄目かな?

noname#9262
質問者

お礼

回答ありがとうございました。 やってみますね。結果は少々お待ちください。

noname#9262
質問者

補足

出来ました!みなさんのおっしゃるとおりでした。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【ExcelVBA】IF条件を満たしているのに、IF条件のところで止まってしまう

    Sub test1() 変数1 = IsEmpty(Range("C1")) If Range("A1") > 0 And Range("B1") = 0 And 変数1 = True Then   test2 End If End Sub 止まったときのデバッグでの表示は Range("A1")は「100」(セルの中身) Range("B1")は「0」(セルの中身) 変数1はRange("C1")がエラー表示なので「True」 すべての条件を満たしているのですが、 IF条件のところで止まってしまいます。 (IF条件のところの1行が黄色くハイライトになっている状態) 止まったデバッグの後に、F5を押して実行させると、 IF条件の続きから実行されて、test2が実行されて処理が終了します。 何で、IF文のところで一度止まってしまうのかわかりません。

  • if文

    いつもと違う分を見つけました。 文法が 「if (変数)」 になっていました。 どういう意味ですか?

  • PERLの「!=」と「=~」 or 「if」と「unless」必ずしも真反対の意味ではない?

    下記コードは、同じ意味だと思っていたのですが、 実行すると違った結果が表示されます。 何故でしょうか? my $string = 'A-test'; unless($string =~ m/-Hoge/){print '=~>',$string;} if($string != m/-Hoge/){print '!=>',$string;}

    • ベストアンサー
    • Perl
  • #if 1 #elseの意味について

    #if 1  文  #else   文 #endif という表記に関して、「#if 1」が「必ず有効」という事はわかるのですが、ここでの「#else」とは「1」でない時ということで、「#if 0」と同じ意味と考えていいのでしょうか?

  • ifの条件式 Andを使用するものについて

    phpで、 $a="あいうえお"; $b="かきくけこ"; $c="かきくけこ"; と変数を三つ宣言しました。 上の変数三つを利用して、以下条件のif文を作りたいと思いました。  条件:$a変数 と $b変数が異なり、かつ $b変数 と $c変数の内容が同じとき「処理A」を実行させる。 ○作成したif文 if(($a <> $b) && ($b == $c)){  処理A } と記述したのですが、 ifブロック処理Aが実行されません。 なぜなのでしょうか…。 ご教授お願いします。

    • ベストアンサー
    • PHP
  • if ($t_image)の意味について教えてください

    if ($t_image)のようにif(変数)となっているときは、 何を条件としてるのですか? if ($t_image == 1)などは、理解できるのですが...

    • ベストアンサー
    • Perl
  • if文内の二次元配列の設定方法について

    if文内の二次元配列の設定方法について 区分の内容によって2つのクラスを呼び分けていたのですが、今回そのクラスを統合しようとしています。 そこで、2つのjavaソースを統合するにあたり、ソース内で使用している二次元配列の内容を区分によって書き換えたいのですが、 if文内に記述するため、その変数の有効範囲がif文内だけになってしまいます。 クラス全体でその配列を参照できるようにするにはどのように記述すればよいのでしょうか? <統合前> Test1.java public class Test1 { private static final String[][] LST = {{3,0,0},{0,0,1},{0,0,1}}; public void initialize() { System.out.println(LST[0][0]); } ⇒【実行結果】3 Test2.java public class Test2 { private static final String[][] LST = {{2,0,0},{0,0,1},{0,0,2},{0,0,3}}; public void initialize() { System.out.println(LST[0][0]); } ⇒【実行結果】2 上記2つのファイルを統合し、区分によって二次元配列の内容を設定する。 <統合案1> Test1.java public class Test2 { private String[][] LST; public void initialize() { if (kubun == 1) { String[][] LST = {{3,0,0},{0,0,1},{0,0,1}}; }else{ String[][] LST = {{2,0,0},{0,0,1},{0,0,2},{0,0,3}}; } System.out.println(LST[0][0]); } ⇒【実行結果】NullExceptionが発生してしまいます。 <統合案2> public class Test2 { private String[][] LST; public void initialize() { if (kubun == 1) { LST = {{3,0,0},{0,0,1},{0,0,1}}; }else{ LST = {{2,0,0},{0,0,1},{0,0,2},{0,0,3}}; } System.out.println(LST[0][0]); } ⇒【実行結果】コンパイルエラーが発生してしまいます。(式の開始が不正です。) ※kubunが1のときと、それ以外のときで作成される二次元配列の要素数は異なります。 ※kubunの内容によって、一度二次元配列の内容を設定してしまえば、あとは同じ内容のままです。 最初の変数の宣言の仕方、二次元配列の内容設定の仕方等、 どのようにすればよいかご教授よろしくお願い致します。

    • ベストアンサー
    • Java
  • else if文の順序を変えることに意味がありますか?

    else if文の順序を変えることに意味がありますか? 「スプライトに記述したクリップアクションです。 実行される内容はどうでも良いのですが、 else if文の順序を変えることに意味がありますか?」 ×(2)の部分だけが実行されません。       onClipEvent (enterFrame) {        if (_root.get_tabaco == false ){          this.gotoAndPlay(4); (1)  }else if(_root.get_tabaco ==true){          this.gotoAndPlay(1); (2)  }else if(_root.state_tabaco == 2){          this.gotoAndPlay(5);     } } ○全て実行されます。       onClipEvent (enterFrame) {        if (_root.get_tabaco == false ){          this.gotoAndPlay(4); (2)  }else if(_root.state_tabaco == 2){          this.gotoAndPlay(5); (1)  }else if(_root.get_tabaco ==true){          this.gotoAndPlay(1);     } } 「(1)と(2)の順序を変えただけで正しく実行されるようになりました。 しかし、なぜ?上手くいったのか、どこが間違いなのか分かりません。 else ifに順序なんかあるんでしょうか? こられのスクリプトに違いがありましたら、教えていただけませんか?」

    • ベストアンサー
    • Flash
  • #ifの意味

    こんにちは。今コードの解析をしているのですが、 #If ●● Then   処理内容 #Else   処理内容 #End If   というようなコードがあるんですけど、#ってなんの意味があるのでしょうか? おわかりなる方がいらっしゃいましたら教えてください。 宜しくお願い致します。

  • マクロのIF

    FANUC CNCでNCのマクロを使用しようとしています. システム変数#100の値をを読んで1ならマクロを抜けて,それ以外なら原点復帰して停止するプログラムです. O1000; IF[#100EQ1.0]GOTO201; N200; M99; N201; G28G91Z0; G28G91Y0; M1; M5; M30; % 呼び出し側はG65P1000;と記述しています. 現在はテストですので,#100の値は自動運転中に手動で入力しています. 上記を実行したところ#100にどんな値を入れてもN201が実行されてしまいます. どうも#100が常に空の値になっているような気がします. 上記の現象が発生する理由がお分かりになられる方がいらっしゃおましたら,何卒ご教授お願い致します.