iOS/Swift 문법

λ³€μˆ˜μ™€ μƒμˆ˜(2)

NelchuPapa 2022. 7. 1. 22:07
λ°˜μ‘ν˜•

πŸ§‘‍πŸ’» μ§€λ‚œ μ‹œκ°„μ— 이어 μ •μˆ˜μ™€ μ†Œμˆ˜λ₯Ό  μ €μž₯ν•˜κ³  μ‚¬μš©ν•˜λŠ” 방법에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž!

 


 

3.  μ •μˆ˜λ₯Ό μ €μž₯ν•˜κ³  μ‚¬μš©ν•˜λŠ” 방법

 

μƒˆλ‘œμš΄ μ •μˆ˜λ₯Ό λ§Œλ“œλŠ”κ²ƒμ€ μ•žμ„œ 배운 λ¬Έμžμ—΄μ„ λ§Œλ“œλŠ” 것과 λ™μΌν•˜λ‹€. λ¬Έμžμ—΄μ„ λ³€μˆ˜μ— ν• λ‹Ήν•˜λ“―μ΄ 이미 μ•žμ—μ„œ 많이 μ–ΈκΈ‰ν•˜μ˜€κΈ° λ•Œλ¬Έμ— λ„˜μ–΄κ°€κ³  μ •μˆ˜μ—μ„œ νŠΉλ³„ν•œ κ²½μš°λŠ” μž‘μ€ μˆ«μžκ°€ μ•„λ‹Œ 큰 수일 κ²½μš°μ—λŠ” μ–΄λ–»κ²Œ ν•΄μ•Ό ν• μ§€λ₯Ό λ°°μ›Œ 보자.

 

λ³€μˆ˜ scoreλŠ” 비ꡐ적 읽기 μ‰½μ§€λ§Œ reallyBigNum에 ν• λ‹Ήλ˜μ–΄μžˆλŠ” 100000000μ΄λ‚˜ 이보닀 큰 수의 경우 μ‚¬λžŒμ€ 읽기 맀우 νž˜λ“€μ–΄μ§„λ‹€. ν•˜μ§€λ§Œ  reallyBigNum_1에 ν• λ‹Ήλœ 100_000_000은 reallyBigNum보단 읽기 νŽΈν•˜κ²Œ ν‘œν˜„ν•˜λ”λΌλ„ κ²°κ³ΌλŠ” λ˜‘κ°™μ΄ λ‚˜μ˜€λŠ” 것을 확인할 수 μžˆλ‹€. λ”°λΌμ„œ 맀우 큰 μˆ˜λŠ” 잘 μ‚¬μš©ν•˜μ§€λŠ” μ•Šμ§€λ§Œ λ§Œμ•½ μ‚¬μš©ν•˜κ²Œ λœλ‹€λ©΄ λ‹€μŒκ³Ό 같이 _ λ₯Ό μ΄μš©ν•΄μ„œ 수λ₯Ό ν‘œν˜„ν•΄λ³΄μž! πŸ‘

 



-  μ •μˆ˜λ₯Ό μ΄μš©ν•œ λ‹€μ–‘ν•œ κΈ°λŠ₯ 

 

(1) μ‚°μˆ  μ—°μ‚°μž

 

λ‹€μ–‘ν•œ μ–Έμ–΄μ—μ„œ λ³Ό 수 μžˆλŠ” 특수 연산은 Swift에도 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ counter = counter + 5 λ₯Ό μ“°λŠ” λŒ€μ‹  ν•΄λ‹Ή μ •μˆ˜μ— 직접 숫자λ₯Ό μΆ”κ°€ν•˜λŠ” 속기 μ—°μ‚°μžμΈ += λ₯Ό μ‚¬μš©ν•΄λ³Ό 수 μžˆλ‹€. 

 

 

 

 

(2) isMultiple(of:)

 

isMultiple(of:)은 μ •μˆ˜λ₯Ό 호좜 ν•˜μ—¬ μ œμ‹œν•œ μ •μˆ˜μ˜ λ°°μˆ˜μΈμ§€μ— λŒ€ν•œ μ—¬λΆ€λ₯Ό 확인할 수 μžˆλ‹€. 

λ°”λ‘œ μ˜ˆμ‹œλ₯Ό 확인 ν•΄λ³΄μž!

 

120이 3의 λ°°μˆ˜μΈμ§€ 확인 ν•΄λ³΄μ•˜λ‹€. 결과값은 λ¬Όλ‘  True이닀.

 


 

4.  μ†Œμˆ˜λ₯Ό μ €μž₯ν•˜κ³  μ‚¬μš©ν•˜λŠ” 방법 

 

μš°λ¦¬λŠ” μ •μˆ˜κ°€ μ•„λ‹Œ 3.1, 5.56, 3.14 56κ³Ό 같이 μ†Œμˆ˜μ μ„ μž‘μ—…ν•΄μ•Ό ν•  λ•Œλ„ λ§Žλ‹€.  SwiftλŠ” λΆ€λ™μ†Œμˆ˜μ μœΌλ‘œ μž‘μ—…ν•˜κ²Œ λ˜λŠ”λ° μ΄λ₯Ό μ΄μš©ν•΄μ„œ μ—°μ‚° μž‘μ—…μΈ 0.1κ³Ό 0.2λ₯Ό λ”ν•΄λ³΄μž.

μ™œ 0.3000000000000004κ°€ λ‚˜μ˜€μ§€??

0.1 + 0.2λŠ” λ‹Ήμ—°νžˆ 0.3μ΄μ§€λ§Œ 이λ₯Ό 좜λ ₯해보면 0.30000000000000004λ₯Ό 좜λ ₯ν•˜κ²Œ λœλ‹€. μ™œ μ΄λ ‡κ²Œ 좜λ ₯λ˜λŠ”μ§€λŠ” λΆ€λ™μ†Œμˆ˜μ μ—μ„œ μ€‘μš”ν•œ 점인 Double에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄κ³  이후에 μžμ„Έν•˜κ²Œ 닀루도둝 ν•΄λ³΄μž.

 

Double은 이미 λ‹€μ–‘ν•œ μ–Έμ–΄μ—μ„œ λ§Žμ΄λ“€ λ³΄μ•˜μ„ 것이닀. Double은 Swift의 κΈ°λ³Έ  데이터 νƒ€μž…μœΌλ‘œ μ§€κΈˆκΉŒμ§€ λ‹€λ£¨μ—ˆλ˜ μ •μˆ˜ν˜•μΈ Intν˜• κ³ΌλŠ” 달리 64λΉ„νŠΈ μ‹€μˆ˜ν˜•μœΌλ‘œ 뢀동 μ†Œμˆ˜μ μ„ 생성할 λ•Œ μ‚¬μš©ν•œλ‹€. 

 

μ΄λ²ˆμ—λŠ” Doubleν˜•μ„ Intν˜•κ³Ό ν•¨κ»˜ μ‚¬μš©ν•˜λ©΄ μ–΄λ–»κ²Œ λ˜λŠ”μ§€ μ•Œμ•„λ³΄μž.

Intν˜•κ³Ό Doubleν˜•μ„ ν•¨κ»˜ μ‚¬μš©ν•˜μ—¬ 연산을 ν• λ €κ³  ν•˜λ©΄ 였λ₯˜κ°€ λ‚˜λŠ”κ²ƒμ„ λ³Ό 수 μžˆλ‹€.

μ™œ 이럴까?πŸ€”

μ΄μœ λŠ” κ°„λ‹¨ν•˜λ‹€. aμ—λŠ” μ •μˆ˜ 값이 ν• λ‹Ήλ˜μ–΄μžˆκ³  bμ—λŠ” μ‹€μˆ˜ 값이 ν• λ‹Ήλ˜μ–΄μžˆλŠ” μžˆλŠ”λ° 이 λ‘˜μ„ λ”ν•˜λ €κ³  ν•˜λ‹ˆ 였λ₯˜κ°€ λ‚œ 것이닀. 

였λ₯˜ λ¬Έμ—μ„œλ„ 확인할 수 μžˆλ“―μ΄ λ‹€λ₯Έ μœ ν˜•μ˜ 데이터λ₯Ό ν˜Όν•©ν•˜λŠ” 것은 ν—ˆμš©λ˜μ§€ μ•ŠλŠ”λ‹€. 

 

그럼 μ–΄λ–»κ²Œ ν•΄μ•Ό ν• κΉŒ??

 

해결법

 

(1) let c = a + Int(b)

Swiftμ—κ²Œ Doubleν˜•μΈ bλ₯Ό int둜 μ²˜λ¦¬ν•΄μ•Ό ν•œλ‹€κ³  λͺ…μ‹œμ μœΌλ‘œ 선언을 ν•΄μ£Όλ©΄ λœλ‹€.

 

(2) let c = Double(a) + b  

λ°˜λŒ€λ‘œ intν˜•μ΄μ—ˆλ˜ aλ₯Ό Doubleν˜•μœΌλ‘œ μ²˜λ¦¬ν•΄μ•Ό ν•œλ‹€κ³  μ„ μ–Έν•΄μ£Όλ©΄ λœλ‹€.

 

 

(1), (2)μ—μ„œ λ³Ό 수 μžˆλ“―μ΄ 미리 데이터 νƒ€μž…μ„ μž„μ‹œμ μœΌλ‘œ λ³€κ²½ν•΄μ£ΌλŠ” 것이닀. 

 

 

 


DAY 1μ—μ„œλŠ” Swiftμ—μ„œ 기본적인 λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜λŠ” 방법인 varκ³Ό let을 λ°°μ›Œλ³΄μ•˜λ‹€.

그리고 ν•΄λ‹Ή λ³€μˆ˜μ— λ¬Έμžμ—΄κ³Ό μ •μˆ˜, μ†Œμˆ˜μ μ„ ν• λ‹Ήν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 방법 κ·Έλ₯Ό μ΄μš©ν•œ λ‹€μ–‘ν•œ κΈ°λŠ₯에 λŒ€ν•΄μ„œλ„ λ°°μ›Œλ³΄μ•˜λ‹€.

λ‹€μ–‘ν•œ μ–Έμ–΄λ₯Ό κ³΅λΆ€ν•΄λ³΄λ©΄μ„œ 많이 μ΅μˆ™ν•˜μ—¬ κ°€λ³κ²Œ μ§€λ‚˜κ°ˆ μˆ˜λ„ μžˆμ§€λ§Œ refresh ν•΄λ³΄λŠ” 쒋은 곡뢀 μ‹œκ°„μ΄μ—ˆλ‹€!!

 

DAY 2μ—μ„œ λ§Œλ‚˜μš”~!πŸ‘‹

learning by repetition

λ°˜μ‘ν˜•