こんにちは朱夏です。
今回は、割り算の余りを取得する方法について調べていきたいと思います。
前回のオーバーフロー処理を進化させたい。
割り算の余りを取得する方法何てあるのかな?
というわけで調べてきました。
余りを取得するには
演算子とは
あとがき
余りを取得するには
余りを取得するには、”%”という演算子を使うと良いとの情報を見つけました。
そこで、前回のコードをこの様に書き換えてみました。
weekday = weekday % 7; // オーバーフロー処理 // if(weekday > 6) { // weekday = weekday - 7; // } else { // 何もしない; // }
1行目を追加して、オーバーフロー処理をすべてコメントアウトしました。
ポイントは以下の部分。
通常割り算の場合は”/”ですが、割り算で余りの値を取得したい場合は”%”を使うだけで取得できます。
そして、この式を使う場合は、if文を使わなくても正常に曜日を取得できます。
たとえ当日だったとしても正常に動作します。
何故なら、0~6を7で割った場合、そのまま余りの値になるからです。
試しに10日後を指定して実行してみました。
結果はこんな感じ。
正常に表示できたようです。
思ったより簡単に取得する方法があって助かりました。
演算子とは
今回使った「演算子」というもの、これが何かというのをちょっとだけ書き留めておきたいと思います。
演算子とは一言で言うと、値をどう処理するのかを表す記号です。
今回の例で言うと以下の様な説明になります。
この場合、”=”が「代入」の演算子、”%”が割り算の余りを取得する演算子です。
良く使う演算子としては以下のようなものがあります。
■計算用
- a + b → 足し算
- a – b → 引き算
- a * b → 掛け算
- a / b → 割り算
- a % b → 割り算の余り
計算以外にも演算子は存在しています。
if文などでよく使われる演算子、比較演算子というものもあります。
■比較演算子
- a == b → aとbが等しい
- a > b → aがbより大きい
- a >= b → aがb以上
- a < b → aがbより小さい(未満)
- a <= b → aがb以下
- a != b → aとbは等しくない
代入するための演算子などもあります。
■代入演算子
- a = b → aにbを代入
- a++ → aに1を足してaに代入
主に使うのはこの辺りでしょうか。
他にも論理演算子といったものもありますが、紹介はまたの機会にしておきます。
あとがき
というわけで、曜日のオーバーフロー処理を修正してみました。
今回のまとめはこちらです。
- あまりを手に入れるには”%”を使う
- if文は不要
- これらの記号は演算子という
これで何日でも未来日を指定して表示できるようになったと思ったのですが、また問題が見つかりました。
それは、月をまたいだ場合どうなるのか?という問題。
試しに30日後を指定してみましたが、2月49日といった表示になってしまいました。
これについても、またの機会に解決していきたいと思います。
今回は以上です。
次回もよろしくお願いします。