๋ฐ˜๋ณต๋ฌธ

2022. 7. 15. 01:45ยทiOS/Swift ๋ฌธ๋ฒ•
๋ฐ˜์‘ํ˜•

๐Ÿง‘‍๐Ÿ’ป์ด๋ฒˆ Swift ์‹œ๊ฐ„์— ๋ฐฐ์›Œ๋ณผ ๊ฒƒ์€  ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป

 

๋ฐ˜๋ณต๋ฌธ 

  • for
  • while
  • break์™€ continue

 


1. for 

 

์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด ๋ฐ˜๋ณต ์ž‘์—…์— ๋…ธ์ถœ๋˜๋Š” ์ˆœ๊ฐ„๋“ค์ด ๋งŽ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค๋ฅธ ์–ธ์–ด๋ฅผ ํ•œ ๋ฒˆ์ด๋ผ๋„ ํ•™์Šตํ•ด๋ณธ ์ ์ด ์žˆ๋‹ค๋ฉด ์ด๋ฒˆ ์‹œ๊ฐ„์— ๋ฐฐ์šธ ๋ฐ˜๋ณต๋ฌธ์ด ๋”์šฑ ์‰ฌ์šธ ๊ฒƒ์ด๋‹ค. 

 

๊ทธ๋Ÿผ ๋ฐ”๋กœ ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ์ด๋ฒˆ ํ•™์Šต ์‹œ์ž‘ ํ•ด๋ณด์ž!

 

let platforms = ["iOS", "macOS", "tvOS", "watchOS"]

for os in platforms {
    print("Swift works great on \(os).")
}

platforms์— ๋ฐฐ์—ด ๊ฐ’์„ ์„ ์–ธํ•˜์—ฌ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•˜์—ฌ platforms์— ์†ํ•ด ์žˆ๋Š” ๋ฐฐ์—ด ์š”์†Œ ๊ฐ’๋“ค์„ ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•ด๋ณด์•˜๋‹ค. 

๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 

 

Swift works great on ~~~ ์€ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ฐฐ์—ด์˜ ์š”์†Œ ๊ฐ’์— ๋งž๊ฒŒ 4๋ฒˆ ๋ฐ˜๋ณตํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋ฉฐ (os) ๊ฐ’์—๋Š” ๋ฐฐ์—ด์— ๋“ค์–ด์žˆ๋Š” ์š”์†Œ๋“ค์„ ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ os๋Š” ๋ฃจํ”„ ๋ณ€์ˆ˜๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ด os๊ฐ’์€ ๋ฐ˜๋ณต๋ฌธ ๋‚ด๋ถ€์—์„œ๋งŒ ์กด์žฌํ•˜๋ฉฐ ๋‹ค์Œ ๋ฃจํ”„๋กœ ๋ฐ˜๋ณตํ•  ๊ฒฝ์šฐ ์ƒˆ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด ์ถœ๋ ฅ๋œ๋‹ค.  ๊ทธ๋Ÿผ os๋งŒ ์“ธ ์ˆ˜ ์žˆ๋А๋ƒ? ๊ทธ๊ฑด ์•„๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ์ด๋ฆ„์„ ์ง€์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

 

for name in platforms {
    print("Swift works great on \(name).")
}

์ด๋Ÿฐ ์‹์œผ๋กœ ๋ง์ด๋‹ค. 

 

 

๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•ด์„œ ๋ณดํ†ต ๋ญ˜ ์ œ์ผ ๋งŽ์ด ์—ฐ์Šตํ•ด๋ณผ๊นŒ? ๋‚˜์˜ ๊ฒฝ์šฐ ๊ตฌ๊ตฌ๋‹จ์ด๋‹ค. ํ•œ๋ฒˆ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณด์ž๋ฉด 

for i in 1...10 {
    print("\(i)๋‹จ :")

    for j in 1...10 {
        print("  \(i) x \(j) =  \(j * i)")
    }

    print()
}

 

์ž ์ž˜ ๋ณด๋ฉด for๋ฌธ ์•ˆ์— ๋˜ for๋ฌธ์ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ for๋ฌธ์€ ๋ง ๊ทธ๋Œ€๋กœ 1๋ถ€ํ„ฐ 10๊นŒ์ง€์˜ ๋‹จ์„ ๊ทธ๋ƒฅ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์„ค๋ช…์ด ์ข€ ์• ๋งคํ•˜๋‹ˆ๊น ์˜ˆ์‹œ๋กœ ๋ณด์ž๋ฉด 1๋‹จ, 2๋‹จ, 3๋‹จ ~~ ์ด๋Ÿฐ ์‹์œผ๋กœ! 

 

๊ทธ๋Ÿผ ์•ˆ์— ํ•œ๋ฒˆ ๋” ์žˆ๋Š” ๋ฃจํ”„ ๋ณ€์ˆ˜ j์— ๋Œ€ํ•œ ๋ฐ˜๋ณต์€ ๋ญ˜ ํ‘œํ˜„ํ•˜๋Š” ๊ฑธ๊นŒ?๐Ÿค”

์ด๊ฑด ๊ตฌ๊ตฌ๋‹จ์—์„œ ์‹ค์งˆ์ ์œผ๋กœ ๊ณ„์‚ฐ์ด ์ผ์–ด๋‚˜๋Š” ๋ฐ˜๋ณต๋ฌธ์ด๋‹ค. 

์ž˜ ๋ณด๋ฉด i์˜ ๊ฐ’๊ณผ j์˜ ๊ฐ’์„ ๋ฐ›์•„์™€์„œ ๊ณฑ์…‰์„ ํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ธ๋ฐ ์—ฌ๊ธฐ์„œ ๋ฐ˜๋ณต๋ฌธ ์•ˆ์— ๋ฐ˜๋ณต๋ฌธ์„ ๋„ฃ์€ ์ด์œ ๊ฐ€ ์„ค๋ช…๋œ๋‹ค. 

 

 

์ด๊ฑธ ์ด์ œ ์‹คํ–‰ํ•ด๋ณด๋ฉด  ์›๋ž˜ 10๋‹จ๊นŒ์ง€ ๊ฐ€์•ผ ํ•˜๋Š”๋ฐ ๊ทธ๋Ÿผ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋„ˆ๋ฌด ์ปค์ ธ๋ฒ„๋ฆฌ๋‹ˆ 1๋‹จ์—์„œ 3๋‹จ๊นŒ์ง€๋งŒ ์ž˜๋ž๋‹ค. 

์ด๊ฒƒ ๋ง๊ณ ๋„ ๋‹ค์–‘ํ•œ ์˜ˆ์ œ๊ฐ€ ๋งŽ์€๋ฐ ๊ทธ๊ฑด ๋ฐ˜๋ณต๋ฌธ ์˜ˆ์ œ๋งŒ ๊ฒ€์ƒ‰ํ•ด๋ด๋„ ๋‹ค์–‘ํ•˜๊ฒŒ ๋งŽ์ด ๋‚˜์˜จ๋‹ค.

 

 

 

 

 


 

 

2. while 

 

๋‘ ๋ฒˆ์งธ ๋ฐ˜๋ณต์œผ๋กœ๋Š” while์ด ์žˆ๋‹ค. while์€ for๋ฌธ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ด ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์†ํ•ด์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

 

๊ธฐ๋ณธ์ ์ธ ์˜ˆ์ œ๋กœ while์— ๋Œ€ํ•ด ๋จผ์ € ์•Œ์•„๋ณด์ž!

 

var countdown = 10

while countdown > 0 {
    print("\(countdown)")
    countdown -= 1
}

print("๋นต!")

countdown์ด 10์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  while๋ฌธ์—์„œ countdown์ด 0๋ณด๋‹ค ํด ๋•Œ๊นŒ์ง€ ๊ณ„์†ํ•ด์„œ ํ•ด๋‹น ๋ฌธ์žฅ์„ ์ถœ๋ ฅํ•˜๊ณ , countdown์„ ํ•˜๋‚˜์”ฉ ๊ฐ์†Œ์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ๋” ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค.

 

countdown ๊ฐ’์ด ์•ž์„œ ๋งํ–ˆ๋“ฏ ๊ฐ์†Œํ•˜๋ฉฐ ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•˜๋‹ค๊ฐ€ 0์ด ๋  ๋•Œ loop๋ฅผ ๋ฒ—์–ด๋‚œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 


3.  break์™€ continue

 

Swift์—์„œ๋Š” loop์—์„œ ํ•œ ๊ฐœ ์ด์ƒ์˜ ํ•ญ๋ชฉ์„ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• 2๊ฐ€์ง€๋ฅผ ์ œ๊ณตํ•˜๋Š”๋ฐ, ์ด๊ฒƒ์ด break์™€ continue์ด๋‹ค. 

๊ฑด๋„ˆ๋›ด๋‹ค๋Š” ๊ฒŒ ๋ญ˜๊นŒ? ์ด๊ฑด ์ดํ›„ ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด ํ•œ๋ฒˆ ์•Œ์•„๋ณด์ž. 

 

 

(1) break

 

let number1 = 4
let number2 = 14
var multiples = [Int]()

for i in 1...100_000 {
    if i.isMultiple(of: number1) && i.isMultiple(of: number2) {
        multiples.append(i)

        if multiples.count == 10 {
            break
        }
    }
}

print(multiples)

์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์› ๋˜ ๊ฒƒ์„ ๋งŽ์ด ์‘์šฉํ•˜๋‹ค ๋ณด๋‹ˆ ์กฐ๊ธˆ์€ ์ดํ•ดํ•˜๊ธฐ ํž˜๋“ค ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•œ ์ค„์”ฉ ์ฐฌ์ฐฌํžˆ ๋ณด์ž!

 

  1. ๋‘ ๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ์ €์žฅํ•  ์ƒ์ˆ˜๋ฅผ number 1, number 2๋กœ ์ง€์ •ํ•˜์˜€๋‹ค.
  2. ๋‘ ์ˆซ์ž์˜ ๊ณตํ†ต ๋ฐฐ์ˆ˜๋ฅผ ์ €์žฅํ•  ์ •์ˆ˜ ๋ฐฐ์—ด ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜์˜€๋‹ค. 
  3. ๋ฃจํ”„ ๋ณ€์ˆ˜๋ฅผ i๋กœ ํ• ๋‹นํ•ด์„œ 1๋ถ€ํ„ฐ 100.000๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. 
  4. i๊ฐ€ ์ œ์ผ ์ฒ˜์Œ ์ƒ์ˆ˜์— ์ €์žฅํ•œ ์ˆซ์ž์ธ ๊ฒฝ์šฐ 2๋ฒˆ์งธ ๊ณผ์ •์—์„œ ์ƒ์„ฑํ•œ ์ •์ˆ˜ ๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ•œ๋‹ค.
  5. 10 ๋ฐฐ์ˆ˜๊ฐ€ ๋„˜์œผ๋ฉด ์—ฌ๊ธฐ์„œ break๋ฅผ ๊ฑธ์–ด ๋ฃจํ”„๋ฅผ ๋น ์ ธ๋‚˜์˜จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

(2) continue

let filenames = ["me.jpg", "work.txt", "sophie.jpg", "logo.psd"]

for filename in filenames {
    if filename.hasSuffix(".jpg") == false {
        continue
    }

    print("Found picture: \(filename)")
}

๋ฐฐ์—ด ๋‚ด๋ถ€์— ํŒŒ์ผ๋ช…๊ณผ ํŒŒ์ผ ํ™•์žฅ์ž ๋ช…์ด ๋‹ค๋ฅธ ํŒŒ์ผ๋“ค์ด ํ• ๋‹น๋˜์–ด์žˆ๋‹ค. ์ด์˜ ๊ฒฝ์šฐ for๋ฌธ์„ ํ†ตํ•ด ํŒŒ์ผ ์ด๋ฆ„์„ ์ถœ๋ ฅํ•˜๊ฒŒ๋” ํ•˜์˜€๋‹ค. ์—ฌ๊ธฐ๊นŒ์ง€๋Š” ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ jpg๊ฐ€ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ํ™•์ธ์„ ํ•˜๊ณ  continue๋Š” ์ด ํ…Œ์ŠคํŠธ์—์„œ ์‹คํŒจํ•œ ๋ชจ๋“  ํŒŒ์ผ ์ด๋ฆ„์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ํ…Œ์ŠคํŠธ์— ํ†ต๊ณผํ•œ ํŒŒ์ผ๋“ค๋งŒ ๋งˆ์ง€๋ง‰์— ์ถœ๋ ฅํ•ด์ค€๋‹ค. ํ•œ๋งˆ๋””๋กœ ์—ฌ๊ณผ๊ธฐ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋ฒˆ ํ•ด์ค€ ์…ˆ์ด๋‹ค. 

 

 

 

๋‘ ๊ฐ€์ง€ ๋ชจ๋‘ ๋ฃจํ”„์˜ ๋ฐ˜๋ณต์„ ๊ฑด๋„ˆ๋›ฐ๋Š” ๊ฒƒ์€ ๊ฐ™์ง€๋งŒ ์„ธ๋ถ€์ ์ธ ๋ถ€๋ถ„์„ ๋”ฐ์ ธ๋ณด๋ฉด ์กฐ๊ธˆ์€ ๋‹ค๋ฅด๋‹ค. ์˜ˆ์‹œ๋ฅผ ๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ ๋ฃจํ”„ ๋ฐ˜๋ณต์˜ ๋‚˜๋จธ์ง€ ๋ฃจํ”„ ๋ฐ˜๋ณต์„ ๋ชจ๋‘ ๊ฑด๋„ˆ๋›ฐ๊ณ  ์‹ถ๋‹ค๋ฉด break, ๋ฃจํ”„ ๋ฐ˜๋ณต์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์„ ๊ฑด๋„ˆ๋›ฐ๋ ค๋ฉด continue๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. 

 

 


 

learning by repetition

 

https://www.hackingwithswift.com/100/swiftui/6

 

Day 6 – 100 Days of SwiftUI

Follow the 100 Days of SwiftUI and learn to build apps for free.

www.hackingwithswift.com

 

๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'iOS > Swift ๋ฌธ๋ฒ•' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋งค๊ฐœ๋ณ€์ˆ˜  (0) 2022.07.24
ํ•จ์ˆ˜  (0) 2022.07.23
์กฐ๊ฑด๋ฌธ & ์‚ผํ•ญ ์—ฐ์‚ฐ์ž  (0) 2022.07.14
Type annotations(ํƒ€์ž… ์ถ”๋ก )  (0) 2022.07.12
๋ฐฐ์—ด(2)  (0) 2022.07.11
'iOS/Swift ๋ฌธ๋ฒ•' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ๋งค๊ฐœ๋ณ€์ˆ˜
  • ํ•จ์ˆ˜
  • ์กฐ๊ฑด๋ฌธ & ์‚ผํ•ญ ์—ฐ์‚ฐ์ž
  • Type annotations(ํƒ€์ž… ์ถ”๋ก )
NelchuPapa
NelchuPapa
  • NelchuPapa
    DEV_Larva
    NelchuPapa
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๋งํฌ

    • ๐Ÿ’ป Github
    • Develope (86) N
      • Cloud (18) N
        • AWS (14)
        • Linux (1) N
        • Network (3)
      • CS (5)
      • iOS (28)
        • Swift ๋ฌธ๋ฒ• (14)
        • ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ (7)
        • WWDC (2)
        • HIG (4)
      • Xcode (5)
        • Xcode ์˜ค๋ฅ˜ ๋ชจ์Œ์ง‘ (4)
        • ์‚ฌ์šฉํŒ (1)
      • SwiftUI & UIKit (19)
        • SwiftUI์˜ ๋ชจ๋“ ๊ฒƒ (1)
        • Tutorials (14)
        • Network (1)
        • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (1)
      • ์žก๋™์‚ฌ๋‹ˆ (10)
        • Git&Github (7)
        • Etc (0)
        • ๋ณผ๊ฑฐ๋ฆฌ (1)
        • My daily life (2)
  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
NelchuPapa
๋ฐ˜๋ณต๋ฌธ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”