こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

js for文 条件式

javascript

function generateCalendarPulldown(){
//var nowDate = new Date(today);
var year = Number(todayArr[0]);
var mon = Number(todayArr[1]);

var $selectYear = $('#dialog_panel .dialog_body ul li select#year');
var $selectMonth = $('#dialog_panel .dialog_body ul li select#month');

$selectYear.empty();
$selectYear.empty();

for(var y = year; y < year + 2; y++){
$selectYear.append(new Option(y, y));
}
for(var m = 1; m < 13; m++){
$selectMonth.append(new Option(m, m));
}
$selectYear.val(year);
$selectMonth.val(mon);
generateDay();
}

javascriptのコードなのですが12行目のfor文の初期化式なのですが
for(var y = year; y < year + 2; y++)の条件式の部分の
「 y < year + 2 」、yが yearよりも小さければ処理を続けるという意味だと思うのですが
year + 2の部分の意味が良く理解できていないのですが
日本語で解説するとどのような文章になるでしょうか?
(yが year より小さければ year に2を足すという意味ではないですよね?)

投稿日時 - 2017-02-21 14:36:25

QNo.9296469

暇なときに回答ください

質問者が選んだベストアンサー

>「 y < year + 2 」、yが yearよりも小さければ処理を続けるという意味だと思うのですが

違います。

y < year + 2

と書いた場合、加算演算子+の方が、比較演算子<よりも優先順位が高いので

y < (year + 2)

と言う意味になる。

なので「y」と「year + 2」を比較する事になる。

つまり「yが、yearに2を足した値よりも小さいならば」と言う意味になる。

演算子には「優先順位」と言うのがあるって事を覚えておこう。基本中の基本です。

投稿日時 - 2017-02-21 14:46:33

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

var y = year
ここでyをyearで初期化しています。
例えば2017という数値が入ったとします。

y < year + 2
この条件式はyがyear+2より小さい場合ループという条件です。
先程の条件で置き換えるとy < 2017 + 2 つまり y < 2019 となります。

上記の考え方から指定した年から2年分のカレンダーを生成するプログラムなのではないかと思います。

投稿日時 - 2017-02-21 14:43:36