電子書籍の厳選無料作品が豊富!

if( ) { }のような括弧の中に二つ以上の命令を入れるのは不可能でしょうか??

例えば100g未満は300円
100g以上200g未満は500円
   200g以上300g未満は750円
   300g以上500g未満は1000円

このような計算で

var omosa ;
var nedan ;

if(omosa<100) {nedan = 300};
if(omosa<200 , omosa>=100) {nedan = 500};
if(omosa<300 , omosa>=200) {nedan = 750};
if(omosa<500 , omosa>=300) {nedan = 1000};
if(omosa>500) {alert("許容限界を超えています") };

body部分で
<INPUT NAME="nedan">

としましたがうまくいきませんが、このような場合どのようなプログラムをすればいいのか教えていただけませんか??

A 回答 (4件)

var omosa, nedan;


if(omosa < 100){ nedan = 300;}
elseif(omosa < 200){ nedan = 500; }
elseif(omosa < 300){ nedan = 750; }
elseif(omosa < 500){ nedan = 1000;}
else{ alert("許容範囲を越えています。"); }

ifの式の使い方自体が間違えていますね。

えっと、二つの条件を使うのであれば、
if((omosa<200)&&(omosa>=100)){nedan = 500;}
かな。
最近使ってないので自信ないですが。
    • good
    • 0
この回答へのお礼

ありがとうございます!!
カンマではなく&&をいれるんですね。
とても勉強になりました。どうもありがとうございました。

お礼日時:2003/06/10 19:02

>body部分で


><INPUT NAME="nedan">

>としましたがうまくいきません

どういったタイミングで計算をさせたいのでしょうか。
まずはやりたいことの仕様と、うまくいかない状況を具体的に提示してください。

この回答への補足

ごめんなさい、僕の質問文ではbody部分に問題があるようにもとらえることができますよね。。

if文が間違ってるようで計算ができてないような感じがしたので計算式を書いて、body部分は出力するだけってゆう意味だったのですが、
だから以前の方々の御回答で全て解決しました。
質問文の不備でした。申し訳ありません。

補足日時:2003/06/10 19:08
    • good
    • 0

既に回答は出揃っているので蛇足気味ですが…



if文の条件分岐で、条件を二つ以上設定したい場合は、#1の方の回答にあるように、「&&」を使います。
ご質問の例であれば、

if(omosa<200 && omosa>=100) {nedan = 500};

このように表記すればよいはずです。

ただ、ご質問にあるスクリプトでは、else文を使うことで処理を軽くできると思います。 この記述については、前の方々の回答にある通りです。

if(omosa<100) {nedan = 300};
else if(omosa<200) {nedan = 500};
else if(omosa<300) {nedan = 750};


このようにすると、
初めの条件分岐でomosaが100未満であればnedanを300にして処理を終了し、そうでない場合は次のelseを参照します。
次の部分(else if(omosa<200){…})では、omosaが200未満であるかどうかを判定します。 このとき、前の条件分岐でomosaが100未満であるケースは排除されている(その場合は前の条件分岐の判定で処理を終了しています)ので、実質的にomosaが100以上200未満の時にはnedanを500にし、そうでない場合は順次else文の処理を参照していきます。
このようなelse ifでの処理を連ねていけば、一つのif文に二つの条件を設定しなくても、目的の動作が得られるでしょう。

なお、このようなケースでは、else if文を使ったほうが、スマートな処理になると思いますよ。
ご質問文にあるスクリプトで狙ったような条件分岐を設定すると、すべてのif文に対して条件分岐の判定を行うことになりますので、どれか一つの条件に合致した後も他のif文の条件分岐に合致しないかどうかを判定し続けます。 処理内容によっては、少々負荷の多いスクリプトになるかも知れません。

参考になれば幸いです。 失礼しました。
    • good
    • 0
この回答へのお礼

ありがとうございます!
丁寧に解説していただいたおかげでどういう場合に&&とelse ifを使い分けるのかの見当がつきました。
やっぱまだまだ勉強不足であることを痛感しました(汗)。。
非常に勉強になりました。どうもありがとうございました。

お礼日時:2003/06/10 19:08

var omosa;


var nedan;

if(omosa < 100){
nedan = 300;
}
else if(omosa < 200){
nedan = 500;
}
else if(omosa < 300){
nedan = 750;
}
else if(omosa < 500){
nedan = 1000;
}
else{
alert("許容範囲を越えています。");
}

とすればいいんじゃないでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます!
else if文の存在を初めて知りました。
自分が組んだjavascriptよりもこっちのほうがだいぶシンプルですよね。とても勉強になりました。ありがとうございました。

お礼日時:2003/06/10 19:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!