
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">
としましたがうまくいきませんが、このような場合どのようなプログラムをすればいいのか教えていただけませんか??
No.1ベストアンサー
- 回答日時:
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;}
かな。
最近使ってないので自信ないですが。

No.4
- 回答日時:
>body部分で
><INPUT NAME="nedan">
>
>としましたがうまくいきません
どういったタイミングで計算をさせたいのでしょうか。
まずはやりたいことの仕様と、うまくいかない状況を具体的に提示してください。
この回答への補足
ごめんなさい、僕の質問文ではbody部分に問題があるようにもとらえることができますよね。。
if文が間違ってるようで計算ができてないような感じがしたので計算式を書いて、body部分は出力するだけってゆう意味だったのですが、
だから以前の方々の御回答で全て解決しました。
質問文の不備でした。申し訳ありません。

No.3
- 回答日時:
既に回答は出揃っているので蛇足気味ですが…
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文の条件分岐に合致しないかどうかを判定し続けます。 処理内容によっては、少々負荷の多いスクリプトになるかも知れません。
参考になれば幸いです。 失礼しました。
ありがとうございます!
丁寧に解説していただいたおかげでどういう場合に&&とelse ifを使い分けるのかの見当がつきました。
やっぱまだまだ勉強不足であることを痛感しました(汗)。。
非常に勉強になりました。どうもありがとうございました。
No.2
- 回答日時:
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("許容範囲を越えています。");
}
とすればいいんじゃないでしょうか?
ありがとうございます!
else if文の存在を初めて知りました。
自分が組んだjavascriptよりもこっちのほうがだいぶシンプルですよね。とても勉強になりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ORA-01858: 数値を指定する箇所...
-
getStringの値がNULLの時の処理
-
javaの掲示板について
-
例外でBeanUtils.populateが、...
-
BOOL値を逆にしたい
-
IF関数でEmpty値を設定する方法。
-
JAVAのfor文で困っています。
-
javaで質問です。 文字列2023/2...
-
テキストボックスに入力された...
-
C言語 重複しない4ケタの乱数...
-
オブジェクトの中のプロパティ...
-
C言語のポインターに関する警告
-
動的配列が存在(要素が有る)か...
-
ループ処理の際、最後だけ","を...
-
[Ljava.lang.Stringってなんですか
-
プログラミングの問題です。大...
-
System.err. printlnとSystem.o...
-
Log4jで機能毎に別ファイルへ出...
-
System.out.printlnの出力先
-
変数を動的に利用するには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ORA-01858: 数値を指定する箇所...
-
java DAO 日付指定フォーマット...
-
BOOL値を逆にしたい
-
C# ListBoxのインデックスの値...
-
Java配列でNullPointerExceptio...
-
例外でBeanUtils.populateが、...
-
getStringの値がNULLの時の処理
-
配列にnullを代入すると、null...
-
jsp/Servletの動的に増えるフォ...
-
eclipseでoracle接続時のエラー...
-
空欄のテキストフィールドの判...
-
逆コンパイルの見方について(...
-
Stringを返す getText()メソッ...
-
テキストフィールドに何も入れ...
-
JSPで複数のSQL実行につ...
-
C#でラジオボタンとコンボボッ...
-
空白を返す処理
-
beanの利用
-
HashMapがおかしい
-
入力された文字列の制限
おすすめ情報