Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Yuichiro Takahashi
151 views
Mobile programming control_flow2
10/15日にのMobileProgrammingの授業のスライドです
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
1
/ 37
2
/ 37
3
/ 37
4
/ 37
5
/ 37
6
/ 37
7
/ 37
8
/ 37
9
/ 37
10
/ 37
11
/ 37
12
/ 37
13
/ 37
14
/ 37
15
/ 37
16
/ 37
17
/ 37
18
/ 37
19
/ 37
20
/ 37
21
/ 37
22
/ 37
23
/ 37
24
/ 37
25
/ 37
26
/ 37
27
/ 37
28
/ 37
29
/ 37
30
/ 37
31
/ 37
32
/ 37
33
/ 37
34
/ 37
35
/ 37
36
/ 37
37
/ 37
More Related Content
KEY
Tmux
by
harutsugu shimoji
KEY
Tmux
by
harutsugu shimoji
PPTX
Symfony開発者がLaravelしようとして云々
by
mimizuk
PPTX
Live in commandline
by
KotaIsozaki
PDF
Python02
by
XMLProJ2014
PDF
Mobile programming seigyokoubun
by
Yuichiro Takahashi
PDF
Ruby で学ぶプログラミング入門
by
Ryota Kameoka
PDF
Swift勉強会
by
Nagamine Hiromasa
Tmux
by
harutsugu shimoji
Tmux
by
harutsugu shimoji
Symfony開発者がLaravelしようとして云々
by
mimizuk
Live in commandline
by
KotaIsozaki
Python02
by
XMLProJ2014
Mobile programming seigyokoubun
by
Yuichiro Takahashi
Ruby で学ぶプログラミング入門
by
Ryota Kameoka
Swift勉強会
by
Nagamine Hiromasa
Similar to Mobile programming control_flow2
PDF
脱swift初心者するための2つのきっかけ
by
Daiki Mogmet Ito
PDF
できるプログラマーを本気で育てるSwift超入門iosプログラマーへの第一歩
by
technologicarts
PDF
Swift らしい表現を目指そう #eventdots
by
Tomohiro Kumagai
PDF
Objective-CからSwiftへの移行講座
by
teencoders
ODP
Lt会01_uetch
by
Tomoaki Ueda
PDF
Ruby紹介(pdf)
by
Gohryuh
PDF
Ruby紹介3(pdf)
by
Gohryuh
PDF
#7:演算子と分岐
by
長岡技術科学大学 自然言語処理研究室
PDF
マスターオブゴールーチンアンドチャネル スタートGo #1
by
Takuya Ueda
PDF
Functional Programming in Swift
by
Kaz Yoshikawa
PDF
2011年12月9日
by
nukaemon
PDF
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
by
Tomohiro Kumagai
PDF
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
by
Masaru Gushiken
PDF
Scalaの限定継続の応用と基本
by
Kota Mizushima
PDF
Scalaの限定継続の応用と基本(改訂版)
by
Kota Mizushima
PDF
CoffeeScript
by
Ryo Maruyama
PPTX
関数型言語&形式的手法セミナー(3)
by
啓 小笠原
PDF
20120609 java oo道場(ネタのメモ)
by
skowata
PDF
Swiftアプリ制作入門 かんたんシューティングゲーム
by
聡 中川
PDF
Swiftによる関数型プログラミング超入門
by
Hisakuni Fujimoto
脱swift初心者するための2つのきっかけ
by
Daiki Mogmet Ito
できるプログラマーを本気で育てるSwift超入門iosプログラマーへの第一歩
by
technologicarts
Swift らしい表現を目指そう #eventdots
by
Tomohiro Kumagai
Objective-CからSwiftへの移行講座
by
teencoders
Lt会01_uetch
by
Tomoaki Ueda
Ruby紹介(pdf)
by
Gohryuh
Ruby紹介3(pdf)
by
Gohryuh
#7:演算子と分岐
by
長岡技術科学大学 自然言語処理研究室
マスターオブゴールーチンアンドチャネル スタートGo #1
by
Takuya Ueda
Functional Programming in Swift
by
Kaz Yoshikawa
2011年12月9日
by
nukaemon
Swift 3 で新しくなったところ - 表面から見えにくいところを中心に紹介 #ISAOcorp
by
Tomohiro Kumagai
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
by
Masaru Gushiken
Scalaの限定継続の応用と基本
by
Kota Mizushima
Scalaの限定継続の応用と基本(改訂版)
by
Kota Mizushima
CoffeeScript
by
Ryo Maruyama
関数型言語&形式的手法セミナー(3)
by
啓 小笠原
20120609 java oo道場(ネタのメモ)
by
skowata
Swiftアプリ制作入門 かんたんシューティングゲーム
by
聡 中川
Swiftによる関数型プログラミング超入門
by
Hisakuni Fujimoto
Mobile programming control_flow2
1.
制御構文2 MOBILEPROGRAMMING OCT, 15TH
2.
テキスト 制御構文! ▸ ifやfor-inなど分岐や繰り返し処理を特定の文に構造化したもの ▸ プログラムの構造は
順次、選択、反復の三つに分類される ▸ これらを組み合わせてプログラミングする方法を構造化プログラ ミングと呼ぶ ▸ 今回は繰り返しの構文に絞ってやって行きます ▸ 言語によってはforやwhileという構文が存在しない(or ただのシ ンタックスシュガー)
3.
1. FOR-IN
4.
テキスト FOR-IN文 ▸ 繰り返し処理をするときの基本的な構文 ▸ 構文は
for <変数> in <Array or Range> { /* loop */ } ▸ 下記のforと区別するために for-inと呼ばれます ▸ for (int i = 0; i <= 10, i++) { /* loop */ } ▸ のような構文はSwift 3.0 以降廃止されました ▸ このようなfor文をC-style forと呼びます ▸ for文は特定の回数繰り返し処理をしたいというような場合によく使います
5.
テキスト なんでC-STYLE FOR は消えた? ▸
簡潔にいうとSwiftらしくないから ▸ C言語経験者以外にはわかりにくいし ▸ 初めてSwiftを学ぶ人にとっては覚えにくい ▸ インクリメント、デクリメントによる問題もあるし for (let i = 0; i <= 10; i++) { // loop... for (let j = 0; j <= 10;, i++) { print("it's a infinity loop!") } }
6.
ではどうやって ループさせる?🤔
7.
1-1.RANGE
8.
テキスト RANGE(範囲演算子)を使う ▸ 一番簡単なやり方 ▸ switchの時に出てきたように
0…10 として 0 ~ 10までの Sequence(Array)を作成 ▸ それをfor-inと組み合わせる // Range let range = 0...10 for number in range { print("number: (number)") }
9.
テキスト FOR-IN STLIDE ▸ for-inと
stlide を使用することで間隔を開けてループさせる ことができます // 0から10まで二つとびでループ for number in stride(from: 0, to: 10, by: 2) { print("number: (number)") }
10.
1-2. ARRAY
11.
テキスト ARRAYを使う ▸ これも非常にオーソドックスなやり方 ▸ 定義済みのarrayに対してfor-inを使う ▸
indexでアクセスする方法に比べ Array の範囲外にアクセス してしまうことがないため安全 // Array let array = ["sunday", "monday", "tuesday", "wednsday", "thursday", "friday", "Saturday"] for number in array { print("number: (number)") }
12.
1-3.DICTIONARY
13.
テキスト DICTIONARYを使う ▸ これも割とオーソドックスなやり方 ▸ 定義済みのdictionaryに対してfor-inを使う ▸
key, value の形になっているため for の引数は二つになる // Dictionary let dic = ["Animal": "Cat", "Fruit": "Banana"] for (key, value) in dic { print("key: (key)") print("value: (value)") }
14.
2. WHILE
15.
テキスト WHILE文 ▸ 繰り返し処理をするときの基本的な構文 ▸ 構文は
while <ループ条件> { /* loop */ } ▸ while文は特定の条件にマッチするまで繰り返し処理をした い時に使う var count = 0 var total = 0 while count < 5 { count += 1 total += count } print("count: (count) total: (total)")
16.
3. 制御転送
17.
テキスト 制御転送(CONTROL TRANSFER STATEMENTS)?🤔 ▸
制御転送(Control Transfer Statements)はプログラムの処理 ををある場所から別の場所に移す機能のこと ▸ 例えばcontinue や break, switchのfallthroughなどがある ▸ 関数のreturnや エラー処理に出てくる throw も同じ ▸ 今回はbreakとcontinueに絞ってお話をします
18.
3-1.BREAK
19.
テキスト BREAK ▸ 他の言語同様Swiftにも break
があります ▸ 特定の条件の時にループから抜けたい場合にbreakを使用し ます for i in 0...10 { // 11回ループさせます。 if i >= 3 { // i が 3 以上になったときに抜ける break } print(i) }
20.
3-2. CONTINUE
21.
テキスト CONTINUE ▸ 他の言語同様Swiftにも continue
があります ▸ 特定の条件の時に処理をスキップしたい場合はcontinueを使 用します ▸ breakとは違いloopを抜けることはありません for i in 0...10 { if i % 3 == 0 { // 3の倍数の時はスキップ continue } print(i) }
22.
おまけ
23.
テキスト FORやWHILEを使わない?🤔 ▸ 冒頭で少しお話した通り言語によってはforやwhileが存在し ないです ▸ ではどうやって繰り返しを表現するのでしょうか? ▸
方法はいくつかあり一つは高階関数を使う方法 ▸ もう一つは再帰関数を使う方法です
24.
おまけ: 高階関 数
25.
テキスト 高階関数?🤔 ▸ 関数を引数にとったり、関数を返す関数 ▸ ややこしいので今は詳しくは説明しません ▸
繰り返しのための有名どころでは map, や forEach などがあ ります ▸ for-inを使う方法より簡潔に書くことができます
26.
テキスト たとえば?🤔 ▸ 値段のリストに対して消費税をかけた後の値段のリストを生 成する例を考えます ▸ これをfor-inで書くと次のようになります
27.
テキスト ランダムに生成した数値の倍数を求める // 消費税率 let taxRate
= 0.08 // 値段のリスト let prices: [Double] = [10000, 9800, 34570, 29800, 114514] // まずは空の配列を生成 var newPrices = [Double]()
28.
テキスト ランダムに生成した数値の倍数を求める // 消費税率 let taxRate
= 0.08 // 値段のリスト let prices: [Double] = [10000, 9800, 34570, 29800, 114514] // まずは空の配列を生成 var newPrices = [Double]() // for-inで一度配列から取り出して・・・ for price in prices { }
29.
テキスト ランダムに生成した数値の倍数を求める // 消費税率 let taxRate
= 0.08 // 値段のリスト let prices: [Double] = [10000, 9800, 34570, 29800, 114514] // まずは空の配列を生成 var newPrices = [Double]() // for-inで一度配列から取り出して・・・ for price in prices { let newPrice = price * taxRate newPrices.append(newPrice) // また配列へ入れる! }
30.
控えめに言って 面倒😩
31.
テキスト 高階関数を使った場合 ▸ 高階関数(今回はmap)を使うと次のように書くことができま す // 消費税率 let
taxRate = 0.08 // 値段のリスト let prices: [Double] = [10000, 9800, 34570, 29800, 114514]
32.
テキスト 高階関数を使った場合 ▸ 高階関数(今回はmap)を使うと次のように書くことができま す // 消費税率 let
taxRate = 0.08 // 値段のリスト let prices: [Double] = [10000, 9800, 34570, 29800, 114514] let newPrices = prices.map { $0 * taxRate } // 完成!
34.
短い!😳
35.
テキスト 短い!😳 ▸ 高階関数を使うととても簡潔にかけます ▸ 今回使ったmapという高階関数は配列の中身に順番に受け 取った処理を適用し、新しい配列を生成する関数です ▸
{ $0 * taxRate } の部分が配列の中身全てに適用され、その結 果が新しい配列となります ▸ 高階関数を使うことで余計なコードを省き、どんな処理を したいのか?という部分に集中できます
36.
ちょっと待って! (TWITTER並感)
37.
そもそも関数って なんだっけ?🤔