5 返信 最新の回答 日時: Aug 24, 2008 1:06 PM ユーザー:(KTN)

    javaScriptでのwhile文の条件に

    Level 1
      javaScriptで、while文の条件の()の中に、複数の条件を入れたいのですが
      どうすればよいでしょうか。
      具体的には、AもしくはBもしくはCもしくは…Jではない間、繰り返す条件にしたいのですが…
      AとBだけの場合ならうまくいくのですが、3つ以上になるとうまく動きません。
      どう記述したらうまく動くか、分かる方がいたらアドバイスが欲しいです。

      環境はMacOS10.5、インデザインCS3です。
        • 1. Re: javaScriptでのwhile文の条件に
          seuzo-oJiFme Level 1
          論理演算子「||」でつなぐだけです。
          論理演算子は比較演算子などよりも結合が低いので、括弧でくくる必要があるかもしれません。
          • 2. Re: javaScriptでのwhile文の条件に
            Level 1
            すいません、まだ初めて1ヶ月の初心者です…
            いろいろ調べていろいろ試してはいるんですが、

            while (ZZZ != (AAA || BBB || CCC || DDD ))

            ではうまく動きませんでした。(AAAだけ認識、BBBだと無限にループ)
            それじゃ括弧がいるのかなと思って、

            while (ZZZ != ((AAA || BBB )||( CCC || DDD )))

            という風にしてもうまく動かないんです。
            ダメもとで、もう一個ためしてみたんですが、

            while (ZZZ != AAA , ZZZ != BBB , ZZZ != CCC , ZZZ != DDD )

            にしてもダメでした。(2つまでならいけるみたいなのですが、3つ以上はダメみたいです)

            いずれも無限にループしてしまいます。
            (AAA || BBB )の部分をムリヤリ変数に納めて演算子を1個以上使わないようにしてもダメでした。
            括弧の使い方が間違ってるのでしょうか?
            • 3. Re: javaScriptでのwhile文の条件に
              Level 1
              それではロジックがおかしいですよ。
              ZZZがAAAではない、もしくはZZZがBBBではない、もしくはZZZがCCCではない・・・

              ((ZZZ!=AAA)||(ZZZ!=BBB)||(ZZZ!=CCC)・・・)

              とすると、全てが通ってしまいますね。

              ((ZZZ!=AAA)&&(ZZZ!=BBB)&&(ZZZ!=CCC)・・・)

              AAAではなく、かつBBBでもなく、CCCでもない・・・でしょうか
              一度、論理演算子についてぐぐって見ることをお勧めします。
              • 4. Re: javaScriptでのwhile文の条件に
                seuzo-oJiFme Level 1
                基本的なことですが、論理演算子「||」(or 論理和)は、すべてがfalseの時だけfalseを返し、どれかひとつでもtrueならtrueを返します。
                false || false || false; => false
                false || false || true ; => true

                while文で使うとしたら、すべての条件がfalseの時だけ自動的にbreakします。

                論理演算子「&&」(and 論理積)は、すべてがtrueの時だけtrueを返し、どれかひとつでもfalseならfalseを返します。
                true && true && true ; => true
                true && false && true ; =>false

                参考:
                http://www.tohoho-web.com/js/operator.htm#logical

                もし、ロジカルなことでつまずいておられるなら、コードを見てみないとなんとも言えません。
                while文でなくとも、メソッド(必要なら再帰的なメソッド)で書ける可能性もあります。
                • 5. Re: javaScriptでのwhile文の条件に
                  Level 1
                  できました!!
                  すごい基本的なことですね…申し訳ないです…
                  せうぞーさん、Ten Aさん、本当にありがとうございました!!
                  もっともっと勉強します!!