js switch caseに式を使うと、動かない? 変数代入できない?

switch文で、caseに式を使うと、switch文より前に定義した変数が使えなかった。

以下のコードを見て、

case num>2 の部分をコメントアウトした場合

上に定義したstr1,str2にarr[0], arr[1]が代入できる。

しかし、

case 2 の部分をコメントアウトした場合、

str1,str2に値を代入できず、上で定義した空 ‘ ‘となる。

 

[codepen_embed height=”300″ default_tab=”html,result” slug_hash=”XWemyRO” editable=”true” user=”rea-jin”]See the Pen <a href=”https://codepen.io/rea-jin/pen/XWemyRO”>
Untitled</a> by rea-jin (<a href=”https://codepen.io/rea-jin”>@rea-jin</a>)
on <a href=”https://codepen.io”>CodePen</a>.[/codepen_embed]

 

そもそも switch文のcaseには、switchの引数部分の値が入る。

なので、不等号式などはかけない。

 

もし、不等号式などの条件分けをしたいのならば、

switch(true)とすれば、不等号式などが使える。

以下のコードを見て、どちらかをコメントアウトして動かして欲しい。

 

[codepen_embed height=”300″ default_tab=”html,result” slug_hash=”GRMpzOV” editable=”true” user=”rea-jin”]See the Pen <a href=”https://codepen.io/rea-jin/pen/GRMpzOV”>
Untitled</a> by rea-jin (<a href=”https://codepen.io/rea-jin”>@rea-jin</a>)
on <a href=”https://codepen.io”>CodePen</a>.[/codepen_embed]

 

以上のようにすれば、コードが正しく動く。

 

しかし、以下によると、あまり見慣れない? ので、 if文で書いた方が、わかりやすいとのこと。

https://qiita.com/t_uda/items/1969e09a970d71e4cfd6

参考

https://www.pasonatech.co.jp/workstyle/column/detail.html?p=2624

 

 

【楽天1位】ノートパソコンスタンド パソコンスタンド 折りたたみ式 ノート PCスタンド 改良版 アルミ合金製 ホルダー 高さ 角度調整可能 滑り止め 軽量 姿勢改善 Macbook/Macbook Air/Macbook Pro/iPad//タブレットなど9~17インチまでに対応

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です