質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

716閲覧

javascript 引数に与えられた変数での条件分岐について

babybaby

総合スコア40

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/11/10 04:38

編集2021/11/10 04:38

以下のような生徒の名前と教科の採点結果を引数に与えると、その点数から理系か文系か判定する関数があります。

関数の冒頭に各教科の採点結果が0より大きいかを判定して、
問題があればメッセージを表示する処理があります。

この関数には今後引数である教科の種類が増えることをも想定されています。
冒頭の異常値判定する処理は引数に与えられたすべての教科を対象にしているので、
手打ちでif文の中の条件を増やさず、関数の引数に与えられたstudentName以外の変数全てに対して同様の条件で判定する処理に変えたいです。

上記を解決できる処理をどなたかご教示いただけますでしょうか。
ちなみにIE11環境です。

javascript(ie11)

1classJudg("山田", 100, 80, 50, 20); 2 3 4function classJudg (studentName, sansu, rika, eigo, kokugo) { 5 if (sansu < 0 || rika < 0 || eigo < 0 || kokugo < 0) { 6 console.log("すべての科目をただしく採点してください"); 7 return 8 } 9 10 11 if (sansu >= 80 && rika >= 80) { 12 console.log(studentName + "は理系だね"); 13 } 14 15 if (eigo >= 80 && kokugo >= 80) { 16 console.log(studentName + "は文系だね"); 17 } 18}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

残余引数にすればいいのでは。

残余引数 - JavaScript | MDN

投稿2021/11/10 04:53

hatena19

総合スコア33795

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

科目が増える可能性があるなら科目自体をまとめて関数に渡した方がいいでしょう

javascript

1classJudg("山田",[100,80,50,20]); 2classJudg("佐藤",[70,30,50,20]); 3function classJudg (studentName, kamoku) { 4 sansu =parseInt(kamoku[0]); 5 rika =parseInt(kamoku[1]); 6 eigo =parseInt(kamoku[2]); 7 kokugo =parseInt(kamoku[3]); 8 if (sansu < 0 || rika < 0 || eigo < 0 || kokugo < 0) { 9 console.log("すべての科目をただしく採点してください"); 10 }else if (sansu >= 80 && rika >= 80) { 11 console.log(studentName + "は理系だね"); 12 }else if (eigo >= 80 && kokugo >= 80) { 13 console.log(studentName + "は文系だね"); 14 }else { 15 console.log(studentName + "は判定不能だね"); 16 } 17}

投稿2021/11/10 04:50

yambejp

総合スコア115012

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

js

1 if ([].slice.call(arguments,1).filter(function(x){return x<0}).length) {

投稿2021/11/10 04:49

Lhankor_Mhy

総合スコア36163

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問