0
0

More than 3 years have passed since last update.

JavaScript 最大値の解説

Last updated at Posted at 2020-02-02

長いので、別ページに致しました。

業種、役職関係なく...実際、世界中の人がそれぞれの業務を頑張ってる、そう頑張ろう


JavaScript (ES6) 計算関数 (FizzBuzz問題) より

④が重要です。 代入後に比較。

JSの面白さが増します。

(引数についてJavaScript ES6 )


【 max関数】

const num1 = 1;
const num2 = 40;
const num3 = 60;


let maxNum = (a,b,c) => {
  let max = a;
    if (b > max) {
      max = b;
    } if (c > max) {
      max = c;
    }return max;
  }
const maaax = maxNum(num1,num2,num3);

console.log(`最大値は${maaax}です。`);


ーーーーー
コンソール結果

最大値は60です

【補足】

if (条件) {
条件が真trueであれば実行
} 
else if (条件) {
ifの条件が偽falseかつelse ifの条件が真trueの場合の処理を書く

} else {
ifelse if のいずれも当てはまらない場合の処理を書く
}

余談【最大値を求めるメソッドの場合はもっとシンプル】


const num1 = 1;
const num2 = 40;
const num3 = 60;

console.log(`最大値は${Math.max(num1, num2, num3)}です。`);
ーーーーー
コンソール結果

最大値は60です

MDN Math.max() 関数について

ここから解説

・maxを簡単にmとしてみました。

(maxと書けば最大値になるわけではもちろん無い、がハッキリわかる様に...)

・a,b,cを同じくnum1,num2,num3としました。

(逆の考え方では、引数num1,num2,num3は、違う引数名a,b,cでも可。違う名でも引数が渡されるに変わりは無い。と言う事になります。)今回は、登場する単語数を減らし、分かりやすくしました。

順序は [①引数を指定→②引数を基にアロー関数で処理する→③→④→⑤→⑥] + [❻(); で関数を呼びだしている。]

returnする意味: return文は関数の実行を終了して、関数の呼び出し元に返す値を指定します。
MDN参照

const num1 = 1;
const num2 = 40;
const num3 = 60;


let ⑥maxNum = (②、num1,num2,num3) => {

  let m = num1;             ・変化するのでconstではなくlet
                              ③、 m を num1 にまず決めておく。
                     その場合、ifの処理がなければ、mはnum1のままなので、
                      比較するために、ここからmの条件分岐作業。
    if (num2 > m) {         ④、もし、mよりnum2が大きいなら、 m を num2とし、
                                   (ここでm = num2となり、mに代入され、次にnum3 > num2の比較となる。
                       決して大元mとの比較では無い。ここ理解 最重要。 )
    m =num2;             もし、mよりnum3が大きいなら、 m を num3とする。
   } if (num3 > m) {         この結果をreturnする。
                     returnをする意味:値を返す為。return無しでは(`最大値はundefinedです。となってしまう。
     m =num3;

    }return m;  //←ここの③④の結果が=⑥に代入される  
  }

   
           ❻maxNum(①、maxNumの引数として → num1,num2,num3 この3つを②へ渡す);

   console.log(`最大値は${maxNum}です。`);

ーーーーー
<コンソール結果>

最大値は

(num1,num2,num3) => {

  let m = num1;         
    if (num2 > m) {   
      m =num2;
    } if (num3 > m) {
      m =num3;
    }return m;  
  }

です

と、中身の式が出てしまう。

maxNum の結果だけほしいので、 maxNumを const maaax として代入し、(今回は大袈裟にmaaaxとした)

最大値は${maaax}です。とする。

つまり以下

const num1 = 1;
const num2 = 40;
const num3 = 60;


let maxNum = (num1,num2,num3) => {

  let m = num1;
    if (num2 > m) {
      m =num2;
    } if (num3 > m) {
      m =num3;
    }return m; 
  }
const maaax = maxNum(num1,num2,num3);
console.log(`最大値は${maaax}です。`);

ーーーーー
コンソール結果

最大値は60です


補足 これでも考え方はもちろん同じ

.......

  let max = num3;           //let max = なにか  を基準に以下分岐処理; 
    if (num1 > max) {
      max =num1;
    } if (num2 > max) {
      max=num2;
    }return max;
  }

この最大値を考えた人、すごい!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0