Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Mobile Programming Control Flow 2
Search
yuichiro_takahashi
October 15, 2018
Technology
0
52
Mobile Programming Control Flow 2
MobileProgrammingの授業で使うスライドです!
yuichiro_takahashi
October 15, 2018
Tweet
Share
More Decks by yuichiro_takahashi
See All by yuichiro_takahashi
App Clip - in a nutshell
yuichirokato
0
350
巨大な機能を VIPER + MicroViewController でいい感じに実装した話
yuichirokato
1
820
Mobile Programming Protocol Extension
yuichirokato
0
83
Mobile Programming Protocol
yuichirokato
0
87
Mobile Programming enum
yuichirokato
0
170
Mobile Programming Optional
yuichirokato
0
140
Mobile Programming Struct
yuichirokato
0
130
Mobile Programming Initializer Beta
yuichirokato
0
120
Mobile Programming Inheritance
yuichirokato
0
150
Other Decks in Technology
See All in Technology
はじめてのOSS開発からみえたGo言語の強み
shibukazu
3
950
Snowflake×dbtを用いたテレシーのデータ基盤のこれまでとこれから
sagara
0
110
Agile PBL at New Grads Trainings
kawaguti
PRO
1
450
COVESA VSSによる車両データモデルの標準化とAWS IoT FleetWiseの活用
osawa
1
380
Modern Linux
oracle4engineer
PRO
0
160
エンジニアリングマネージャーの成長の道筋とキャリア / Developers Summit 2025 KANSAI
daiksy
2
620
Unlocking the Power of AI Agents with LINE Bot MCP Server
linedevth
0
110
Create Ruby native extension gem with Go
sue445
0
110
CDK CLIで使ってたあの機能、CDK Toolkit Libraryではどうやるの?
smt7174
4
190
【NoMapsTECH 2025】AI Edge Computing Workshop
akit37
0
220
Oracle Cloud Infrastructure IaaS 新機能アップデート 2025/06 - 2025/08
oracle4engineer
PRO
0
110
要件定義・デザインフェーズでもAIを活用して、コミュニケーションの密度を高める
kazukihayase
0
120
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
GitHub's CSS Performance
jonrohan
1032
460k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
810
We Have a Design System, Now What?
morganepeng
53
7.8k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Scaling GitHub
holman
463
140k
Navigating Team Friction
lara
189
15k
Agile that works and the tools we love
rasmusluckow
330
21k
Six Lessons from altMBA
skipperchong
28
4k
Transcript
੍ޚߏจ2 MOBILEPROGRAMMING OCT, 15TH
ςΩετ ੍ޚߏจʂ ▸ iffor-inͳͲذ܁Γฦ͠ॲཧΛಛఆͷจʹߏԽͨ͠ͷ ▸ ϓϩάϥϜͷߏ ॱ࣍ɺબɺ෮ͷࡾͭʹྨ͞ΕΔ ▸ ͜ΕΒΛΈ߹Θͤͯϓϩάϥϛϯά͢Δํ๏ΛߏԽϓϩάϥ ϛϯάͱݺͿ
▸ ࠓճ܁Γฦ͠ͷߏจʹߜͬͯͬͯߦ͖·͢ ▸ ݴޠʹΑͬͯforwhileͱ͍͏ߏจ͕ଘࡏ͠ͳ͍(or ͨͩͷγ ϯλοΫεγϡΨʔ)
1. FOR-IN
ςΩετ 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จಛఆͷճ܁Γฦ͠ॲཧΛ͍ͨ͠ͱ͍͏Α͏ͳ߹ʹΑ͍͘·͢
ςΩετ ͳΜͰ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!") } }
ͰͲ͏ͬͯ ϧʔϓͤ͞Δʁ
1-1.RANGE
ςΩετ RANGE(ൣғԋࢉࢠ)Λ͏ ▸ Ұ൪؆୯ͳΓํ ▸ switchͷ࣌ʹग़͖ͯͨΑ͏ʹ 0…10 ͱͯ͠ 0 ~
10·Ͱͷ Sequence(Array)Λ࡞ ▸ ͦΕΛfor-inͱΈ߹ΘͤΔ // Range let range = 0...10 for number in range { print("number: \(number)") }
ςΩετ FOR-IN STLIDE ▸ for-inͱ stlide Λ༻͢Δ͜ͱͰִؒΛ։͚ͯϧʔϓͤ͞Δ ͜ͱ͕Ͱ͖·͢ // 0͔Β10·ͰೋͭͱͼͰϧʔϓ
for number in stride(from: 0, to: 10, by: 2) { print("number: \(number)") }
1-2. ARRAY
ςΩετ ARRAYΛ͏ ▸ ͜ΕඇৗʹΦʔιυοΫεͳΓํ ▸ ఆٛࡁΈͷarrayʹରͯ͠for-inΛ͏ ▸ indexͰΞΫηε͢Δํ๏ʹൺ Array ͷൣғ֎ʹΞΫηε
ͯ͠͠·͏͜ͱ͕ͳ͍ͨΊ҆શ // Array let array = ["sunday", "monday", "tuesday", "wednsday", "thursday", "friday", "Saturday"] for number in array { print("number: \(number)") }
1-3.DICTIONARY
ςΩετ 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)") }
2. WHILE
ςΩετ WHILEจ ▸ ܁Γฦ͠ॲཧΛ͢Δͱ͖ͷجຊతͳߏจ ▸ ߏจ while <ϧʔϓ݅> { /*
loop */ } ▸ whileจಛఆͷ݅ʹϚον͢Δ·Ͱ܁Γฦ͠ॲཧΛͨ͠ ͍࣌ʹ͏ var count = 0 var total = 0 while count < 5 { count += 1 total += count } print("count: \(count) total: \(total)")
3. ੍ޚసૹ
ςΩετ ੍ޚసૹ(CONTROL TRANSFER STATEMENTS)ʁ ▸ ੍ޚసૹ(Control Transfer Statements)ϓϩάϥϜͷॲཧ ΛΛ͋Δॴ͔ΒผͷॴʹҠ͢ػೳͷ͜ͱ ▸
ྫ͑continue break, switchͷfallthroughͳͲ͕͋Δ ▸ ؔͷreturn Τϥʔॲཧʹग़ͯ͘Δ throw ಉ͡ ▸ ࠓճbreakͱcontinueʹߜ͓ͬͯΛ͠·͢
3-1.BREAK
ςΩετ BREAK ▸ ଞͷݴޠಉ༷Swiftʹ break ͕͋Γ·͢ ▸ ಛఆͷ݅ͷ࣌ʹϧʔϓ͔Βൈ͚͍ͨ߹ʹbreakΛ༻͠ ·͢ for
i in 0...10 { // 11ճϧʔϓͤ͞·͢ɻ if i >= 3 { // i ͕ 3 Ҏ্ʹͳͬͨͱ͖ʹൈ͚Δ break } print(i) }
3-2. CONTINUE
ςΩετ CONTINUE ▸ ଞͷݴޠಉ༷Swiftʹ continue ͕͋Γ·͢ ▸ ಛఆͷ݅ͷ࣌ʹॲཧΛεΩοϓ͍ͨ͠߹continueΛ ༻͠·͢ ▸
breakͱҧ͍loopΛൈ͚Δ͜ͱ͋Γ·ͤΜ for i in 0...10 { if i % 3 == 0 { // 3ͷഒͷ࣌εΩοϓ continue } print(i) }
͓·͚
ςΩετ FORWHILEΛΘͳ͍ʁ ▸ ಄Ͱগ͓ͨ͠͠௨ΓݴޠʹΑͬͯforwhile͕ଘࡏ͠ ͳ͍Ͱ͢ ▸ ͰͲ͏ͬͯ܁Γฦ͠Λදݱ͢ΔͷͰ͠ΐ͏͔ʁ ▸ ํ๏͍͔ͭ͋͘ΓҰͭߴ֊ؔΛ͏ํ๏ ▸
͏Ұͭ࠶ؼؔΛ͏ํ๏Ͱ͢
͓·͚: ߴ֊ؔ
ςΩετ ߴ֊ؔʁ ▸ ؔΛҾʹͱͬͨΓɺؔΛฦؔ͢ ▸ ͍͜͠ͷͰࠓৄ͘͠આ໌͠·ͤΜ ▸ ܁Γฦ͠ͷͨΊͷ༗໊Ͳ͜ΖͰ map,
forEach ͳͲ͕͋ Γ·͢ ▸ for-inΛ͏ํ๏ΑΓ؆ܿʹॻ͘͜ͱ͕Ͱ͖·͢
ςΩετ ͨͱ͑ʁ ▸ ஈͷϦετʹରͯ͠ফඅ੫Λ͔͚ͨޙͷஈͷϦετΛੜ ͢ΔྫΛߟ͑·͢ ▸ ͜ΕΛfor-inͰॻ͘ͱ࣍ͷΑ͏ʹͳΓ·͢
ςΩετ ϥϯμϜʹੜͨ͠ͷഒΛٻΊΔ // ফඅ੫ let taxRate = 0.08 // ஈͷϦετ
let prices: [Double] = [10000, 9800, 34570, 29800, 114514] // ·ۭͣͷྻΛੜ var newPrices = [Double]()
ςΩετ ϥϯμϜʹੜͨ͠ͷഒΛٻΊΔ // ফඅ੫ let taxRate = 0.08 // ஈͷϦετ
let prices: [Double] = [10000, 9800, 34570, 29800, 114514] // ·ۭͣͷྻΛੜ var newPrices = [Double]() // for-inͰҰྻ͔ΒऔΓग़ͯ͠ɾɾɾ for price in prices { }
ςΩετ ϥϯμϜʹੜͨ͠ͷഒΛٻΊΔ // ফඅ੫ 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) // ·ͨྻೖΕΔʂ }
߇͑Ίʹݴͬͯ ໘
ςΩετ ߴ֊ؔΛͬͨ߹ ▸ ߴ֊ؔ(ࠓճmap)Λ͏ͱ࣍ͷΑ͏ʹॻ͘͜ͱ͕Ͱ͖· ͢ // ফඅ੫ let taxRate =
0.08 // ஈͷϦετ let prices: [Double] = [10000, 9800, 34570, 29800, 114514]
ςΩετ ߴ֊ؔΛͬͨ߹ ▸ ߴ֊ؔ(ࠓճmap)Λ͏ͱ࣍ͷΑ͏ʹॻ͘͜ͱ͕Ͱ͖· ͢ // ফඅ੫ let taxRate =
0.08 // ஈͷϦετ let prices: [Double] = [10000, 9800, 34570, 29800, 114514] let newPrices = prices.map { $0 * taxRate } // ʂ
None
͍ʂ
ςΩετ ͍ʂ ▸ ߴ֊ؔΛ͏ͱͱͯ؆ܿʹ͔͚·͢ ▸ ࠓճͬͨmapͱ͍͏ߴ֊ؔྻͷதʹॱ൪ʹड͚ औͬͨॲཧΛద༻͠ɺ৽͍͠ྻΛੜ͢ΔؔͰ͢ ▸ { $0
* taxRate } ͷ෦͕ྻͷதશͯʹద༻͞Εɺͦͷ݁ Ռ͕৽͍͠ྻͱͳΓ·͢ ▸ ߴ֊ؔΛ͏͜ͱͰ༨ܭͳίʔυΛল͖ɺͲΜͳॲཧΛ ͍ͨ͠ͷ͔ʁͱ͍͏෦ʹूதͰ͖·͢
ͪΐͬͱͬ ͯʂ (TWITTERฒײ)
ͦͦؔͬͯ ͳΜ͚ͩͬʁ