見出し画像

【Swift】【初心者用】for文の書き方

はいどうも!

フリーランスエンジニアの南だいすけです!


今回はSwiftのfor文の書き方について解説していきます。


for文とは

よく繰り返しの処理なんて言われています。

for文とは例えば1〜9までの配列があって、

その配列全ての数字を2倍にしたい!とか、

配列のなかの〜だけを取りたい。。!

っといった時などにもよく使います。

現場では「ここをfor文で回して〜する」などと言われたりしますね。


for文の書き方

var numbers = [1,2,3]

for num in numbers {
  
   print(num)
}

// 結果 1
// 結果 2
// 結果 3

こんな感じです。

ここはnumbersを回していると、イメージするとわかりやすいです!


では日本語にしてみます。

numbersを回して一つ一つの要素をnumに入れるよ。


ちなみに。。。

下記のようなArrayの要素番号と要素の両方を取りたい時は

enumerated()をArrayの後ろにつけてあげましょう。

let drinkArray = ["coffee", "tea", "milk"]

for index, element in drinkArray.enumerated() {
    print(index, element)
}

// 結果 0 coffee
// 結果 1 tea
// 結果 2 milk

for の後に二つ変数をおき、はじめが要素番号次が要素になります。

上記コードでいう要素番号がindexで、要素はelementになります。

これは後述するforEachやmapでも一緒なので覚えておきましょう!


forEachの書き方

var numbers = [1,2,3]

numbers.forEach {
   print($0)
}

// 結果 1
// 結果 2
// 結果 3

このようにfor文とは違い、変数名.forEachという書き方をします。

またfor文でいうnumは書かなくてもいいので、

そう言った場合は$0を使います。

書きたい場合は下記のような感じにします。

 numbers.forEach { num in
   print(num)
}


要素番号も欲しい場合はfor文同様、変数名の後にenumerated()を書き、

{ 以降に変数を二つ書いてあげましょう。

let drinkArray = ["coffee", "tea", "milk"]

drinkArray.enumerated().forEach { index, element in
   print(index, element)
}

// 結果 0 coffee
// 結果 1 tea
// 結果 2 milk


mapの書き方

var numbers = [1,2,3]

numbers.map {
   print($0)
}

// 結果 1
// 結果 2
// 結果 3



// こんな書き方も出来ます
let numbersPlusOne = numbers.map { $0 + 1 }
print(numbersPlusOne)

// 結果 2
// 結果 3
// 結果 4

mapは書き方自体はforEachと一緒ですが、

numbersPlusOneのように定数化することが出来て便利です。

// こんな書き方も出来ますの方を解説すると、

{ }内の条件(今回は$0は要素のことなのでそれに+1したもの)を

定数にいれるということです。

日本語でいうと

numbers($0のこと)に+1 したものをnumbersPlusOneに入れてprintしてね

と言った感じです。

filterの書き方

let array = [1,2,3,4,5]

let newArray = array.filter { $0 < 4 }
    print(newArray) 
// 結果 [1,2,3]

filterは条件に合う要素のものを絞り込んで使いたい時に便利です。

こちらはmapの親戚という認識でいましょう!

日本語でいうと

array($0のこと)の4より小さいものをnewArrayに入れてね

と言った感じです。


ちょっとmapとfilterは難しいですね。

しかし使っていくうちに「ああ、こういうことか!」となると思います!



どうだったでしょうか?

今回はSwiftのfor文について書かせていただきました!



さいごに


プログラミングって難しいですよね。。

僕も文系大学を出て、全くの未経験からスタートしたので

気持ちは痛いほどよくわかります。。!

少しずつ勉強していけば知識が蓄積され、

いつかはそれが線として繋がる日が絶対きます!!

一緒にがんばっていきましょう!


この記事で少しでも初心者の方が、

「お!そういうことか!」とか「ちょっとわかったぞ!!」

っとなっていただけたら幸いです。



最後まで見ていただきありがとうございました!


ではまた次の記事でお会いしましょう!



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