Google グループは Usenet の新規の投稿と購読のサポートを終了しました。過去のコンテンツは引き続き閲覧できます。
表示しない

(A && B)?

閲覧: 1 回
最初の未読メッセージにスキップ

ITAHASHI Kunio

未読、
2003/05/25 11:43:092003/05/25
To:
こんにちは。お世話になります。


条件式で分岐の書き方がわかりません。

function CheckData(gas){
(("CO2" == gas) && (document.form1.elem2.name == gas) )? alert('P1') :
alert('P2');
}
のように、( )? の中の分岐条件を絞り込むことはできないのでしょうか?
なぜかうまくいきません。FAQとかを探してみたのですが、そんなやり方はど
こにも見当たりませんでした。これはまちがった記述の仕方なのでしょうか。


いつも初歩的な質問ばかりで申し訳ありません。
--
板橋国男

ku...@gssm.otsuka.tsukuba.ac.jp

未読、
2003/05/25 21:05:472003/05/25
To:
久野です。

kunit...@h2.dion.ne.jpさん:


> function CheckData(gas){
> (("CO2" == gas) && (document.form1.elem2.name == gas) )? alert('P1') :
> alert('P2');
> }
> のように、( )? の中の分岐条件を絞り込むことはできないのでしょうか?

別にできますけど。構文や言語機能の理解があってないんじゃなくて、
フォーム要素のアクセス方法とかが違っているんじゃないの。そもそも
そぼくな疑問ですが

(1) なぜgasが"CO2"のとき限定なの? それだったらもう1方の値が"CO2"
かどうかいきなり調べた方が簡単でしょ?

(2) 本当にフォーム要素のnameを比較したいんですか。値じゃなくて。
nameならHTMLのソースに書かれてるから比較するまでもないんじゃ
ないの。

(3) フォーム要素の指定方法は略さずに
「document.forms.フォーム名.elements.要素名」とした方がよい。
私の好みですが。

(4) だいたい条件式なんて読みづらくてトラブルのもとなんだから、一
番シンプルなもの以外はif文を使った方がいい。

> いつも初歩的な質問ばかりで申し訳ありません。

(5) やりたいコードでつまずいた時はそれを簡略化して問題の箇所だけ
テストする、という能力を養った方がいいですよ。

まあがんばってください。 久野

ITAHASHI Kunio

未読、
2003/05/26 0:58:422003/05/26
To:
すいません。

質問の仕方がいけなかったと思います。
いま、(条件A)?X:Y での条件式を勉強しています。
この条件分岐では()内に&&や||などの演算子を入れる
ことはできますか?
自分なりに試してみましたがどうもうまく動かないようです。
可能なのでしたらサンプルなど教えてくださいませんでしょ
うか。チュートリアルのURLでも結構です。

いつも初歩的な質問ばかりで申し訳ありません。
--
板橋国男

IIJIMA Hiromitsu

未読、
2003/05/26 5:20:232003/05/26
To:
いいじまです。

> いま、(条件A)?X:Y での条件式を勉強しています。
> この条件分岐では()内に&&や||などの演算子を入れる
> ことはできますか?
> 自分なりに試してみましたがどうもうまく動かないようです。

「条件A」の部分をきちんと ( ) でくくってあれば、&& や || も使えるはずで
すよ。

・実際に書いてみたコード
・期待している結果
・実際に出てくる結果
をきちんと書いて投稿してみてください。

========================================================================
飯嶋 浩光 / でるもんた・いいじま http://www.ht.sakura.ne.jp/~delmonta/
IIJIMA Hiromitsu, aka Delmonta mailto:delm...@ht.sakura.ne.jp

───【今日のひとこと】───────────────────
There are more than one ways for doing the same thing.
                        ──Larry Wall
───────────────────────────────

ku...@gssm.otsuka.tsukuba.ac.jp

未読、
2003/05/26 5:20:392003/05/26
To:
久野です。

kunit...@h2.dion.ne.jpさん:
> この条件分岐では()内に&&や||などの演算子を入れる
> ことはできますか?

できます。

> 自分なりに試してみましたがどうもうまく動かないようです。

だから何をどう試したの。

<script type="text/javascript">
var x = 1, y = 1, z = 1;
(x == y && x == z) ? alert('Y') : alert('N');
</script>

これで「Y」が出ませんか。

出ないなら処理系が壊れている。 久野


T. Sugita

未読、
2003/05/26 8:05:202003/05/26
To:
すぎたです。

In message news:bahAa.284$t6...@news1.dion.ne.jp
"ITAHASHI Kunio" <kunit...@h2.dion.ne.jp> wrote ...

> いま、(条件A)?X:Y での条件式を勉強しています。
> この条件分岐では()内に&&や||などの演算子を入れる
> ことはできますか?
> 自分なりに試してみましたがどうもうまく動かないようです。

既に久野さんが一度答えを書いていますが、条件Aに&&等が
使えないのではなく、個別の条件がおかしいと思われます。

function CheckData(gas){
(("CO2" == gas) && (document.form1.elem2.name == gas))
? alert('P1') : alert('P2');
}

ここで、document.from1.elem2.name の値は elem2 では
ないですか?

こういった場合、まず gas や document.form1.elem2.name
alert()等で表示してみて、それでもわからない場合は、
たとえば ? : で書くとすると、以下のように個別に
チェックしてみると良いです。

("CO2" == gas) ? alert('P1') : alert('P2');
(document.form1.elem2.name == gas) ? alert('N1') : alert('N2');

また、条件式を一旦変数に代入して表示させてみるのも手です。

flag = (("CO2" == gas) && (document.form1.elem2.name == gas));
alert(flag);

おそらく、今テストしておられるソースでは false に
なると思われます。

# 今、もし gas に CO2 が入っているとして、elem2.name
# elem2 とすると、true && false で false となっている
# と思われます。

--
杉田
sugi...@bk.iij4u.or.jp

ku...@gssm.otsuka.tsukuba.ac.jp

未読、
2003/05/26 21:57:362003/05/26
To:
久野です。

nws-...@bp.iij4u.or.jpさん:
> 既に久野さんが一度答えを書いていますが、条件Aに&&等が使えない
> のではなく、個別の条件がおかしいと思われます。

初心者にあるよねえ、自分が書いた部分は正しい、よって言語の機能
の方が間違っている、っていうの :-)

私も初心者のころは「これはマシン(ハードウェア)が壊れている」と
かいって先生に笑われたもんです。でも永遠にそういう思考してると永
遠に初心者のままですよね~。

もっともコンパイラならバグは確かにあり得るけど 久野

ITAHASHI Kunio

未読、
2003/05/27 22:12:082003/05/27
To:
杉田さん こんにちは

いろいろありがとうございました。解決しました。
コードの例示がマズくて余計なご迷惑おかけしてしまいました。
以後気をつけたいと思います。言い訳になって恐縮なのですが、
具体的に書いた方がよいのでは、と思って、とりあえずアタマに
あった環境問題のQ&Aをコードにしたらと思い、想像で書いてし
まいました。でも、専門家の皆さんには例示は釈迦に説法でした。
書くならきちんと、typeはhiddenにしてnameはvalueとすべきだった
と思います。
いつもすいませんです。
#杉田さんにはJavaScriptのことだけでなく、他のことでもとても
教えられます。私も見習いたいと思います。懲りずにまたよろしく
お願い致します。

--
板橋 拝

ITAHASHI Kunio

未読、
2003/05/28 10:42:352003/05/28
To:
IIJIMA Hiromitsu さんwrote in message <3ED1DC57...@ht.sakura.ne.jp>...
>[SNIP]

>「条件A」の部分をきちんと ( ) でくくってあれば、&& や || も使えるはずで
>すよ。
>
>・実際に書いてみたコード
>・期待している結果
>・実際に出てくる結果
>をきちんと書いて投稿してみてください。
>

飯嶋さん こんにちは
ご親切ありがとうございます。

--
板橋 拝

新着メール 0 件