ループ
特定の回数だけ繰り返し実行されるコードブロック(for
ループなど)、または、条件が当てはまる間は繰り返し実行されるコードブロック(while
ループなど)。
指定回数繰り返す単純なループの書き方 (for 文)
// range の場合
for i in 1...5{ // .(ドット)は 3 つ
繰り返し実行する処理
}
この例では単純にコードを 5 回繰り返すという内容の書き方。
ある条件になるまで処理を繰り返す書き方 (while 文)
指定した条件が true
(真)になる間は繰り返し実行されるコードブロック。
条件が false
(偽)に変わると、ループの実行が終了する。
var count =0
while count < 5 {
print(count)
count +=1
}
この例では count が 5 になるまで print を表示する。 出力結果としては
count 0
count 1
count 2
count 3
count 4
になる。(count に 1 を加算しているのは print の後であるため、count 5 の表示はされない)
条件分岐
-
if 文
一つ以上の条件によって実行するかどうかを決めるためのコード構造。
if
文内のコードブロックをif
ブロックという。if
文には、追加の条件を調べるためのelse if
ブロックや、else
ブロックが含まれることもる。 -
else if 文
if
文で、if
ブロックと前のelse if
ブロック(ある場合)で調べられなかった条件を調べるためのコードブロック。 -
else 文
if
文に含まれる最後のコードブロック。if
文に含まれるすべての条件がfalse
(偽) のときに実行される。
if 条件分岐の内容 {
条件を満たすときに実行する処理
} else if 追加の条件分岐 {
追加の条件を満たすときに実行する処理
} else {
どの条件にも当てはまらないときに実行する処理
}
Bool 値
true
(真) または false
(偽) のいずれかの値を持つ型。例えば、9 < 7
では 9
は 7
よりも小さくないので、false
(偽) が返される。
論理演算子
論理演算子は、条件分岐コードをもっと細かく書くのに使える演算子。 以下の3つの演算子がそれぞれ特定の方法で条件を変更する。
AND &&
OR ||
NOT !
-
論理 AND (&&) 演算子 すべての条件が
true
(真) のときだけ実行される。 -
論理 OR ( || ) 演算子 いずれかの条件が
true
(真) のときに実行される。(両方の条件がtrue
のときも実行される) -
論理 NOT ( ! ) 演算子 この演算子では、条件が逆に変わる。 例えば、
isEmpty
がtrue
(真) なら、!isEmpty
はfalse
(偽) になる。
変数
変更できる値を保存するための、名前のついた入れ物(意訳)のこと。
代入演算子
変数に値を設定するための記号 ( = )。
代入
変数または定数を設定する操作。
型とインスタンス
型とは設計図のようなものであり、インスタンスは設計図を使って作成された実体のこと。 また、型には特徴や動作が示される。
- インスタンス: 特定の型の値。
プロパティとメソッド
型では、特徴はプロパティ、動作はメソッドと呼ばれる。 プロパティは、型の中で定義される変数で、メソッドは、型の中で定義される関数である。
ドット表記
プロパティを取り出すときや、インスタンスのメソッドを実行するときに使う構文。
例えば、example.toggleSwitch()
では、example
インスタンスの toggleSwitch()
メソッドが呼び出される。
- 構文: コンピュータが理解して実行できるようにコードを書くための規則
関数
必要なときにすばやく実行できるように、一連のコマンドに名前を付けたもの。
関数を定義するには、func
を使って名前を選択する。関数の後には必ず ()
を付ける。
-
パラメータ 関数の定義で使われる、関数に指定する入力値の名前。 例えば、
move(distance: Int)
では、distance
(距離) が、int
型の値を受け取るパラメータになる。 -
引数 関数の動作を変えるために、関数に指定する入力値。 例えば、
move(distance: 3)
という関数呼び出しでは、3
という引数でどのくらい移動するのかを指定している。
アルゴリズム
アルゴリズムとは、問題を解決するために使われる一連のルールや指示のこと。 例えば、道順を教えてくれるアプリでは、行きたいところまでの一番短い道筋を調べるためにアルゴリズムが使われる。
列挙
同じ仲間の異なる値 (列挙ケース) を定義するための型。
例えば、 Direction
(方向) という列挙は、基本的な方位である
・north
(北)
・south
(南)
・east
(東)
・west
(西)
の4つのケースを定義しています。
変数や定数に列挙を代入するときは、その中のケースを1つだけ選びます。
例えば、 let compassDirection: Direction = .north
のように書きます。
配列
同じ型の項目を順番に並べて保存するための入れ物。同じ項目を違う場所に入れる事もできる。
例えば、highScores = [37, 34, 29, 29, 26]
は、整数の配列。
特定の型の配列 (Int
(整数) の配列など) を作成したら、その配列には別の型 (文字列など) の項目は入れられない。
配列の中の項目はインデックスを使って変更できる。
let ingredients = [🍨, 🍓, 🍫, 🥝]
// 索引 0 1 2 3
// ingredients[1] = 🍓
// ingredients[3] = 🥝
※コンピュータは 0 から数え始めるので、最初の項目のインデックスは 0 になる。 2 つ目は 1、3 つ目は 2 のように続く。
Swift の配列には、項目の削除や追加などの簡単な操作を実行するために呼び出すことができるメソッドが用意されている。
let ingredients = [🍨, 🍓, 🍫, 🥝]
// 索引 0 1 2 3
ingredients.remove(at: 2) // インデックス2を削除する
↓
[🍨, 🍓, 🥝]
// 索引 0 1 2
// [2]にあったチョコが消えてキウイが繰り上がった
ingredients.append(🍊) // オレンジを追加する
[🍨, 🍓, 🥝, 🍊]
// 索引 0 1 2 3
// 配列の最後に要素が追加された
ingredients.insert(🍎, at: 1) // インデックス 1 に追加する
[🍨, 🍎, 🍓, 🥝, 🍊]
// 索引 0 1 2 3 4
// [1] にリンゴが追加され、後の要素のインデックス番号が変わる
配列の各要素に for-in 構文を用いて同じ操作を実行できる。これを反復処理という。
for tempCoordinate in ingredients {
tempCoordinate.append(ingredients)
}