switchのセレクタの特徴を理解し、switchで指定した年月日を計算するのは本年の数日目です.
3146 ワード
switch文の実行ロジック:switchの後ろの括弧の中の変数が後ろの定数と等しいところ(コードブロック)から、命令が終わるまで順番に命令を実行します.Caseの役割:演算に関与するわけではなく、条件判断の役割を果たさず、変数に「リード」を与え、命令を実行する入口番号である.コンピュータにラベルは命令が格納されたアドレスにすぎない.breakはswitch文の内容に属しず、選択構造から飛び出す役割を果たす.
次に、指定された日付が本年の数日目であるコードを計算します.このコードは、switchセレクタの実行ロジックを十分に利用しています.すなわち、変数に基づいてエントリ番号を見つけ、命令が終了するまで順次実行します.では、この機能を実現するには、なぜ月を逆さまに書くのでしょうか.たとえば、6月5日が今年の何日目かを計算するには、前の5ヶ月が過ぎていることが知られています.つまり、日数を計算するときの前の5ヶ月は必ず加算されるので、month-1=5を順番に下に実行し(指定月以下のcaseの日数を加算)、最後に総日数:num+todayを得るにはswitchセレクタの特徴を十分に理解しなければなりません.
次に、指定された日付が本年の数日目であるコードを計算します.このコードは、switchセレクタの実行ロジックを十分に利用しています.すなわち、変数に基づいてエントリ番号を見つけ、命令が終了するまで順次実行します.では、この機能を実現するには、なぜ月を逆さまに書くのでしょうか.たとえば、6月5日が今年の何日目かを計算するには、前の5ヶ月が過ぎていることが知られています.つまり、日数を計算するときの前の5ヶ月は必ず加算されるので、month-1=5を順番に下に実行し(指定月以下のcaseの日数を加算)、最後に総日数:num+todayを得るにはswitchセレクタの特徴を十分に理解しなければなりません.
var year = Number(prompt(" "));
var month = Number(prompt(" "));
var today = Number(prompt(" "));
var num = 0;
switch (month - 1){
case 11:
num += 30;
case 10:
num +=31;
case 9:
num += 30;
case 8:
num += 31;
case 7:
num += 31;
case 6:
num += 30;
case 5:
num += 31;
case 4:
num += 30;
case 3:
num += 31;
case 2:if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
num += 29;
}else{
num += 28;
}
case 1:
num += 31;
}
num = num + today;
alert(num);