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
810
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
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
7.7k
KubeCon + CloudNativeCon Japan 2025 Recap
ren510dev
1
380
United Airlines Customer Service– Call 1-833-341-3142 Now!
airhelp
0
170
整頓のジレンマとの戦い〜Tidy First?で振り返る事業とキャリアの歩み〜/Fighting the tidiness dilemma〜Business and Career Milestones Reflected on in Tidy First?〜
bitkey
2
16k
CRE Camp #1 エンジニアリングを民主化するCREチームでありたい話
mntsq
1
120
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
27k
LangChain Interrupt & LangChain Ambassadors meetingレポート
os1ma
2
310
Tokyo_reInforce_2025_recap_iam_access_analyzer
hiashisan
0
180
事業成長の裏側:エンジニア組織と開発生産性の進化 / 20250703 Rinto Ikenoue
shift_evolve
PRO
2
21k
ゼロからはじめる採用広報
yutadayo
3
920
MobileActOsaka_250704.pdf
akaitadaaki
0
120
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
0
110
Featured
See All Featured
A Tale of Four Properties
chriscoyier
160
23k
How STYLIGHT went responsive
nonsquared
100
5.6k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Embracing the Ebb and Flow
colly
86
4.7k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Designing Experiences People Love
moore
142
24k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
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ฒײ)
ͦͦؔͬͯ ͳΜ͚ͩͬʁ