見出し画像

Swiftでいこう! - 簡単なことから。

簡単なことを考えたままコードにしてみましょう。

うるう年を例題として考えてみます。

うるう年は 

(1)西暦年号が4で割り切れる年をうるう年とする。        (2)(1)の例外として、西暦年号が100で割り切れて400で割り切れない年は平年とする。

https://www.nao.ac.jp/faq/a0306.html

とされています。

うるう年かどうかを調べる年数を変数に入れて調べます。変数の名前は"leapYear"とします。

 まず、4で割り切れるのが一番の条件なので、調べています。

leapYear % 4  ==  0

になることが条件なので、

var leapYear = 1970

if leapYear % 4 == 0{
   print("うるう年")
}else{
    print("4で割り切れないので違います")
}

leapYear % 4 == 0

"4"で割ったらあまりは"0"であることを条件にしたので、4 で割り切れないものは除外されます。

もし条件に合えば

print("うるう年")

が実行されますが、4で割るらだけで条件として不足で、

100で割り切れて400で割り切れない年は平年

なので、その逆であればうるう年なのでその条件を入れます。逆なので"100で割り切れない"と"400で割り切る"という2つの条件なので、

leapYear % 100 != 0 || leapYear % 400 == 0

"||"を使って両方の条件を満たすものが真という記号を使います。

ということで

 if leapYear % 100 != 0 || leapYear % 400 == 0{
       print("うるう年")
  }else{
       print("100で割り切れて400で割り切れないので違います")
  }

となります。2つの条件を合体させて調べたい西暦を変数leapYearに代入してやり実行するとうまく計算されていることがわかります。

var leapYear = 2010

if leapYear % 4 == 0{
    if leapYear % 100 != 0 || leapYear % 400 == 0{
       print("うるう年")
        }else{
        print("100で割り切れて400で割り切れないので違います")
    }
}else{
    print("4で割り切れないので違います")
}

簡単に使うために関数にします。

func checkLeap(leapYear:Int){
    if leapYear % 4 == 0{
        if leapYear % 100 != 0 || leapYear % 400 == 0{
           print("うるう年")
        }else{
            print("100で割り切れて400で割り切れないので違います")
        }
    }else{
        print("4で割り切れないので違います")
    }
}

と定義して

checkLeap(leapYear: 2016)

と実行できるようになりました。もう少し簡単に、

func checkLeap(_  leapYear:Int)

"_" アンダーバーを入れると実行するとき、

checkLeap(2016)

とすることができます。"leapYear:"が省略くことができ、よりシンプルになります。


この記事が気に入ったらサポートをしてみませんか?