Swift学習⑦(codebelle)if

◆ if

〜まえがき〜

Ios アプリを作成したい(家計簿アプリ、ゲーム)

・比較的簡単らしく、Xcodeがあればすぐに開発をはじめられるのでどんどんやりたい

 ドットインストールにもXcode の使い方(無償)とSwift 入門(有料)があったため 併用していきたい。

 環境xcode 、paiza.io(ブラウザエディタ)

 教材:codebelle、その他webサイト

【本ブログについて】

・codebelle等の講義を参考に自分なりにアレンジしたコードを載せ理解を深めていく。

・又、当ブログは非商用でありcodebelle公式のブログではない。

・《ハック》(改造)は教材での学習のみでは納得できなかった部分について、コードを追加・削除してみたり、オリジナルのコードを作成し試行錯誤してみた箇所。

・《観察》は《ハック》についての考察や、教材もしくはググって参考にした事について、自分なりに理解を深める箇所。

◆ ループ処理

条件によって行動を変化させる「制御文」を用いた処理

制御文(ループ処理){for,while

          (条件分岐) {if,switch

◆ if = 真なら実行する。

【書式】

if 条件式 {//条件式がtrue の時実行。false だとスルー//}

true:真、false:偽 {true,false はBool 型という箱に用意されている。

Bool 型=真偽値を格納するための型

条件式=比較演算子を用いる

比較演算子=左右の2つの値を比較する式。

a==b //a,b が等しいとtrue
a!=b //a,b が等しくないとtrue
a>b //a がb より大きいとtrue
a<b //その逆
a>=b //a がb 以上の時true
a<=b //a がb 以下の時true

論理演算子=複数の式を比較

条件式A && 条件式B //A とB どっちも成り立つことでtrue(and)
条件式A || 条件式B //A とB どっちか成り立つことでtrue(or)

【例】3000 円ならお茶を買うコード

let tya = 3000
 if tya == 3000{
  print("お茶を買う") }
出力↓
お茶を買う

《ハック》

300 にしてコンパイル→print が実行されない

《観察》

if 文の条件を満たした=true でないと、{}はスルーされる。

このままだとfalse の場合何も表示されないため不親切

条件式がfalse(偽)だったことを表す方法

【書式】

if 条件式 {//true で実行//}
else {//false で実行//}

【例】100 円のりんごなら買う。100 円より高ければ買わない。

let apple = 500
 if apple == 100 {
  print("買う") }
else {
 print("買わない") }
出力↓
買わない

更に分岐させる方法

【書式】

if 条件文 {}
else if 条件文 {}
else {}

【例】100 円以下なら買う、100 円なら悩む、それ以外なら値切る

let apple = 100
 if apple < 100 {
  print("買う") }
else if apple == 100 {
 print("悩む") }
else {
 print("値切る") }
出力↓
悩む

《観察》

else に条件文を入れたらエラーがおきた。

◆ if let でオプショナル型がnil か否かを判定

【書式】

if let 定数 = オプショナル変数 { //nil じゃなければ実行 //}

nil の場合はelse に「nil のため計算不可」等とすればおk

【例】

var ringo : Int?
 if let apple = ringo {
  print("¥(apple)はnil ではない")
} else {
  print("nil である")
}
出力↓
nil である

《考察》
1 行目のように、オプショナル型である事を初期に宣言し、値を入れない場合は、型に?か「!」を付ける。

//!はoptional が代入された変数を使うとき、はじめからアンラップされた状態になる

//?はラップされた状態

後ほど値が入ってくるため、定数は使えない、変数のみ。

2 行目「ringo」に!を付けたらエラー。アンラップしても何もないからか。

(分からなくなってきたら、ラップは包み紙をイメージする)