読者です 読者をやめる 読者になる 読者になる

酢だこのネット人生

マークアップエンジニアの酢だこの日記。ネットで気になったことと、日常。たまに勉強。

PHPで閏年を確認するやつ

ごきげんよう、酢だこです。
レビューがずたぼろで笑った。
会社に落ちてたこれを使用してPHPをいじっております。

PHP 1 はじめてのPHPプログラミング (CD-ROM付) (プログラミング学習シリーズ)

PHP 1 はじめてのPHPプログラミング (CD-ROM付) (プログラミング学習シリーズ)

 

練習問題を見て、わけわからんところは戻る&検索って方法でやってます。
2章から5-3までするっと来たのでいけると思いきや
6-1でめっちゃつまってる……

まず閏年かどうかを確認するif文作って
それをキーごとに書いたけどこれループじゃん、ってなって
どのループ使うのか?ってところです。
forとwhileの違いがちゃんとわからない~~

普段使ってるhtmlとかcssでもそうだけど、こういう時はこれを使う、っていう
実務的な使い分けっていっぱいあって
たぶんそれを身につけることが勉強なんだろうなって気がします。
表示だけならループさせなくても間違いじゃないしな。
でも、後から数が増えたりした時に不便なので、できるだけわかりやすくきれいなコードを書いていきたいと思うのでした。
他の人に見られた時にかっこ悪くないように、っていうところでうまく折り合いを付けたい。

ちなみに試行錯誤しながら書いてるドチャクソかっこ悪いソース*1これ。がんばりましょう


//配列$aを定義
$a = array(2000,2001,2002,2003,2004,2005);

//確認
print_r ($a);

// if文でがんばった履歴
//[0]に対して確認(以下~[5]まで繰り返し)
echo $a[0];
if ( $a[0] % 4 != 0 ) { echo "閏年ではない";
} elseif ( $a[0] % 100 != 0 )  {echo "閏年です";
} elseif ( $a[0] % 400 != 0) {echo "閏年ではない";
}else { echo "閏年です";
}


echo $a[1];
if ( $a[1] % 4 != 0 ) { echo "閏年ではない";
} elseif ( $a[1] % 100 != 0 )  {echo "閏年です";
} elseif ( $a[1] % 400 != 0) {echo "閏年ではない";
}else { echo "閏年です";
}

echo $a[2];
if ( $a[2] % 4 != 0 ) { echo "閏年ではない";
} elseif ( $a[2] % 100 != 0 )  {echo "閏年です";
} elseif ( $a[2] % 400 != 0) {echo "閏年ではない";
}else { echo "閏年です";
}

echo $a[3];
if ( $a[3] % 4 != 0 ) { echo "閏年ではない";
} elseif ( $a[3] % 100 != 0 )  {echo "閏年です";
} elseif ( $a[3] % 400 != 0) {echo "閏年ではない";
}else { echo "閏年です";
}

echo $a[4];
if ( $a[4] % 4 != 0 ) { echo "閏年ではない";
} elseif ( $a[4] % 100 != 0 )  {echo "閏年です";
} elseif ( $a[4] % 400 != 0) {echo "閏年ではない";
}else { echo "閏年です";
}

echo $a[5];
if ( $a[5] % 4 != 0 ) { echo "閏年ではない";
} elseif ( $a[5] % 100 != 0 )  {echo "閏年です";
} elseif ( $a[5] % 400 != 0) {echo "閏年ではない";
}else { echo "閏年です";
}



// 以下閏年のプログラム組んだ試行錯誤
$a = 1 ; //閏年ではない 4で割り切れない

echo $a;

if ( $a % 4 != 0 ) { echo "閏年ではない";
} elseif ( $a % 100 != 0 )  {echo "閏年です";
} elseif ( $a % 400 != 0) {echo "閏年ではない";
}else { echo "閏年です";
}

$a = 4 ; //閏年です 4で割り切れるが、100で割り切れない

echo $a;

if ( $a % 4 != 0 ) { echo "閏年ではない";
} elseif ( $a % 100 != 0 )  {echo "閏年です";
} elseif ( $a % 400 != 0) {echo "閏年ではない";
}else { echo "閏年です";
}

$a = 100 ; //閏年ではない 4で割り切れる、100で割り切れる、400で割り切れない

echo $a;

if ( $a % 4 != 0 ) { echo "閏年ではない";
} elseif ( $a % 100 != 0 )  {echo "閏年です";
} elseif ( $a % 400 != 0) {echo "閏年ではない";
}else { echo "閏年です";
}

$a = 400 ;//閏年です 4で割り切れる、100で割り切れる、400で割り切れる"

echo $a;

if ( $a % 4 != 0 ) { echo "閏年ではない";
} elseif ( $a % 100 != 0 )  {echo "閏年です";
} elseif ( $a % 400 != 0) {echo "閏年ではない";
}else { echo "閏年です";
}

追記:ちゃんとforeachに行き着きました。

*1:ソースコード貼り付けるの難しい。合っているのだろうか