※ ChatGPTを利用し、要約された質問です(原文:条件分岐(IF文)の簡素化)
条件分岐の簡素化方法を教えてください
2013/07/15 16:05
このQ&Aのポイント
javascript初心者が条件分岐(IF文)を簡素化する方法を教えてください。
javascript初心者が変数を変えて異なる結果を表示するスクリプトを作っていますが、組み合わせが多くなってしまい、効率的な方法を知りたいです。
IF文の代わりとなる、簡素な条件分岐の方法を教えてください。
javascript初心者です。
下記のように7つの変数を利用した組み合わせで、表示内容を変えるjavascriptを組んでいます。
IF文で組んでみたところ、下記のように18通りのIF文になってしまいました。
このjavascriptについては、変数を変えて1ページに10ケ所に配置するため、クライアントマシンは、180通りのIF文計算をすることになるため、簡素化したいと考えています。
switch文だと条件分岐を簡素化出来そうですが、例文では、変数がひとつの場合の例しか載っておらず、複数の場合の記載例がありませんでした。
もっと効率的な方法があると思うため、IF文に限らず良い方法をご指導頂きたくお願いする次第です。
宜しくお願い致します。
var a1
var a2
var a3
var a4
var a5
var a6
var a7
if (a1=="") {
document.write("1の作業"); }
else if (a2<a3*50) {
document.write("2の作業"); }
else if ((a2<a3*50) && (a4>=1000) && (a5<=1000) && (a6>=300) && a7="") ) {
document.write("2の作業"); }
else if ((a2<a3*50) && (a4>=1000) && (a5<=1000) && (a6<299) && a7="") ) {
document.write("3の作業"); }
else if ((a2<a3*50) && (a4>=1000) && (a5>1000) && (a6>=300) && a7="") ) {
document.write("4の作業"); }
else if ((a2<a3*50) && (a4>=1000) && (a5>1000) && (a6<299) && a7="") ) {
document.write("5の作業"); }
else if ((a2<a3*50) && (a4<1000) && (a5<=1000) && (a6>=300) && a7="") ) {
document.write("6の作業"); }
else if ((a2<a3*50) && (a4<1000) && (a5<=1000) && (a6<299) && a7="") ) {
document.write("7の作業"); }
else if ((a2<a3*50) && (a4<1000) && (a5>1000) && (a6>=300) && a7="") ) {
document.write("8の作業"); }
else if ((a2<a3*50) && (a4<1000) && (a5>1000) && (a6<299) && a7="") ) {
document.write("9の作業"); }
else if ((a2<a3*50) && (a4>=1000) && (a5<=1000) && (a6>=300) && a7="1") ) {
document.write("10の作業"); }
else if ((a2<a3*50) && (a4>=1000) && (a5<=1000) && (a6<299) && a7="1") ) {
document.write("11の作業"); }
else if ((a2<a3*50) && (a4>=1000) && (a5>1000) && (a6>=300) && a7="1") ) {
document.write("12の作業"); }
else if ((a2<a3*50) && (a4>=1000) && (a5>1000) && (a6<299) && a7="1") ) {
document.write("13の作業"); }
else if ((a2<a3*50) && (a4<1000) && (a5<=1000) && (a6>=300) && a7="1") ) {
document.write("14の作業"); }
else if ((a2<a3*50) && (a4<1000) && (a5<=1000) && (a6<299) && a7="1") ) {
document.write("15の作業"); }
else if ((a2<a3*50) && (a4<1000) && (a5>1000) && (a6>=300) && a7="1") ) {
document.write("16の作業"); }
else if ((a2<a3*50) && (a4<1000) && (a5>1000) && (a6<299) && a7="1") ) {
document.write("17の作業"); }
else {
document.write("18の作業"); }
質問の原文を閉じる
質問の原文を表示する
お礼
大変ありがとうございます。 素晴らしいソースをご提示頂き本当に助かります。 true false で分けていくんですね。 大変勉強になりました。 おっしゃる通り、ぱっと見ただけでは、どのような基準で作ったのか分かりづらいため、決定表とセットで用いる必要があると思います。 早速使用させて頂きます。 本当にありがとうございました。