ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

Swift ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•˜๊ธฐ ์œ„ํ•ด

๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ •๋…ํ•˜๊ณ  ์ •๋ฆฌํ•˜๋Š” ๊ธ€์„ ์˜ฌ๋ฆฌ๊ธฐ๋กœ ํ–ˆ๋Š”๋ฐ..

 

๋„ˆ๋ฌด ํšจ์œจ์ด ๋–จ์–ด์ง€๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฝ์–ด๋ณด๋ฉด์„œ

 

์ €์˜ ์‹ฌ๊ธฐ๋ฅผ ๊ฑด๋“œ๋ฆฌ๋Š” ๋‚ด์šฉ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๊ณ 

ํ•ด๋‹น ๋‚ด์šฉ์„ ๊ธ€๋กœ ๋‚จ๊ธฐ๊ธฐ๋กœ ๋งˆ์Œ์„ ๋จน์—ˆ์Šต๋‹ˆ๋‹ค!

 

(๋ฌธ์„œ์— ์ž˜ ๋‚˜์™€์žˆ๋Š”๋ฐ ๊ตณ์ด ๋งŽ์€ ์‹œ๊ฐ„์„ ํ• ์• ํ•ด์„œ ๋‹ค์‹œ ์ •๋ฆฌํ•˜๋Š”๊ฒŒ ์˜๋ฏธ๊ฐ€ ์žˆ๋‚˜ ์‹ถ์–ด..

์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ•˜๊ณ  ์ดํ•ดํ•˜๋Š” ๊ฒƒ์— ๋ชฉํ‘œ๋ฅผ ๋‘๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.๐Ÿ˜Ž)


 

๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ Swift ๊ณต์‹๋ฌธ์„œ์˜ Basic Operators๋ฅผ ์ฝ์œผ๋ฉฐ ์ƒ๊ธด ์˜๋ฌธ์— ๋Œ€ํ•ด

๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


์˜๋ฌธ์ 

https://docs.swift.org/swift-book/documentation/the-swift-programming-language/basicoperators#Remainder-Operator

๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž (%)๋Š” ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” ๋ชจ๋“ˆ๋กœ ์—ฐ์‚ฐ์ž (modulo operator)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์Œ์ˆ˜์— ๋Œ€ํ•œ Swift์˜ ๋™์ž‘์€ ์—„๋ฐ€ํžˆ ๋งํ•˜๋ฉด ๋ชจ๋“ˆ๋กœ ์—ฐ์‚ฐ์ด ์•„๋‹Œ ๋‚˜๋จธ์ง€ ์ž…๋‹ˆ๋‹ค.

 

 

๋ชจ๋“ˆ๋กœ? ๋‚˜๋จธ์ง€? ๋ญ”์ง€ ๋ชจ๋ฅด๊ฒ ๊ณ ..

% ์—ฐ์‚ฐ์ž๋Š” ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•ด์ฃผ๋Š” ์—ฐ์‚ฐ์ž ์•„๋‹ˆ์˜€๋‚˜์š”..๐Ÿ˜…

 

์Œ์ˆ˜์—์„œ๋Š” ๋‹ค๋ฅด๋‹ค๋Š”๊ฒŒ ๋ฌด์Šจ ์˜๋ฏธ์ผ๊นŒ์š”..?

 

์—ด์‹ฌํžˆ ์„œ์นญํ•˜๋ฉฐ ์ดํ•ดํ•˜๋ ค๊ณ  ํ•ด๋ดค๋Š”๋ฐ..

๋”ฑํžˆ '์ด๊ฑด ์ด๊ฑฐ๊ณ , ์ €๊ฑด ์ €๊ฑฐ์•ผ.' ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ๋Š” ๋”ฑํžˆ ์—†๋Š” ๊ฒƒ ๊ฐ™์•„์š”..!

 

๊ทธ๋ž˜์„œ ์ œ๊ฐ€ ๋‚˜๋ฆ„๋Œ€๋กœ ์ƒ๊ฐํ•œ remainder์™€ modulo์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ๋‚จ๊ฒจ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

(+ modulo operator๋Š” Python์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.)


๋ฌธ์ œ ์ƒํ™ฉ

๊ทธ๋Ÿผ ์•ž์„œ ์„ค๋ช…ํ•˜๊ธฐ ์ „์—,

 

์ด ๋‘˜์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•˜์ง€ ์•Š์€ ๋ถ„๋“ค์˜ ๊ถ๊ธˆ์ฆ์„ ์œ ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด..

์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ƒํ™ฉ์„ ๋จผ์ € ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

(์ €๋งŒ modulo๋ž‘ remainder์˜ ์ฐจ์ด๋ฅผ ๊ถ๊ธˆํ•ด ํ•˜๋Š” ๊ฑฐ ์•„๋‹ˆ๊ฒ ์ฃ ..?)

// Swift์˜ Remainder Operator
print(12 % 5)   // ์ถœ๋ ฅ ๊ฒฐ๊ณผ:  2
print(12 % -5)  // ์ถœ๋ ฅ ๊ฒฐ๊ณผ:  2
print(-12 % 5)  // ์ถœ๋ ฅ ๊ฒฐ๊ณผ: -2
print(-12 % -5) // ์ถœ๋ ฅ ๊ฒฐ๊ณผ: -2
# Python์˜ Modulo Operator
print(12 % 5)    # ์ถœ๋ ฅ ๊ฒฐ๊ณผ:  2
print(12 % -5)   # ์ถœ๋ ฅ ๊ฒฐ๊ณผ: -3
print(-12 % 5)   # ์ถœ๋ ฅ ๊ฒฐ๊ณผ:  3
print(-12 % -5)  # ์ถœ๋ ฅ ๊ฒฐ๊ณผ: -2

 

๋ถ„๋ช… ๋˜‘๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ–ˆ๋Š”๋ฐ, ์™œ ๋‘ ์–ธ์–ด์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋‚˜์˜ฌ๊นŒ์š” ? 

 

๊ถ๊ธˆํ•˜์ง€ ์•Š์œผ์‹ ๊ฐ€์š” ?!?!?!

(์•„๋‹ˆ๋ฉด.. ์•Œ์•„์„œ ํ•˜์‹œ์ฃ .)

 

์ด์œ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•˜๋Š” ์‹

์šฐ์„ ,

๋ชจ๋“ˆ๋กœ์™€ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชฉ์ ์ธ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•˜๋Š” ์‹์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

[a / b]๋Š” a๋ฅผ b๋กœ ๋‚˜๋ˆด์„ ๋•Œ ๋ชซ

 

a๋ฅผ b๋กœ ๋‚˜๋ˆด์„ ๋•Œ ๋‚˜๋จธ์ง€๋Š” ์œ„์˜ ์‹์„ ์ด์šฉํ•˜์—ฌ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[a / b]๋Š” a๋ฅผ b๋กœ ๋‚˜๋ˆด์„ ๋•Œ์˜ ๋ชซ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด,

12๋ฅผ 5๋กœ ๋‚˜๋ˆด์„ ๋•Œ์˜ ๋‚˜๋จธ์ง€๋Š” 2์ด๋ฉฐ, ๋ชซ์€ 2์ž…๋‹ˆ๋‹ค.


๋ชซ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์˜ ์ฐจ์ด

๊ทธ๋ ‡๋‹ค๋ฉด ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•˜๋Š” ์‹์€ ๋™์ผํ•˜์ง€๋งŒ,

๊ฐ’์ด ๋‹ค๋ฅด๊ฒŒ ๋‚˜์˜ค๊ณ  ์„œ๋กœ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ๋ถˆ๋ฆฌ๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?

 

๊ฐ ์–ธ์–ด๋งˆ๋‹ค [a / b]์ธ, ๋ชซ์„ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์˜ ์ฐจ์ด๊ฐ€ ์žˆ์–ด

modulo์™€ remainder ์—ฐ์‚ฐ์ž์˜ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

 


 

๋‘ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ๊ฐ ๋ชซ์„ ๊ตฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

Swift์˜ ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ' / '์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชซ์„ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

(12์™€ 5, ๋‘˜ ๋‹ค Int ํƒ€์ž…์œผ๋กœ ๊ฒฐ๊ณผ๋„ Int ํƒ€์ž…์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.)

// Swift
print(12 / 5)    // ์ถœ๋ ฅ ๊ฒฐ๊ณผ:  2

 

cf) Swift์—์„œ ๋ชซ์„ ๊ตฌํ•  ๋•Œ ' / ' ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/apple/swift/blob/main/stdlib/public/core/Integers.swift

 

 

python์˜ ๊ฒฝ์šฐ๋Š” '//' ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชซ์„ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.

( '/ ' ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ •ํ™•ํ•œ ๊ฐ’์„ ๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— 2.4๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.)

# Python
print(12 // 5)    # ์ถœ๋ ฅ ๊ฒฐ๊ณผ:  2

 

cf) Python์—์„œ๋Š” ๋ชซ์„ ๊ตฌํ•  ๋•Œ ' // ' ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://docs.python.org/3.3/library/functions.html#divmod


โญ๏ธ ์–‘์ˆ˜์ผ ๊ฒฝ์šฐ, ๋‘ ์ฝ”๋“œ์˜ ๊ฒฐ๊ณผ๋Š” ๊ฐ™์ง€๋งŒ, ์Œ์ˆ˜์˜ ๊ฒฝ์šฐ๋Š” ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค. 

// Swift
print(12 / -5)    // ์ถœ๋ ฅ ๊ฒฐ๊ณผ:  -2
print(-12 / 5)    // ์ถœ๋ ฅ ๊ฒฐ๊ณผ:  -2
print(-12 / -5)   // ์ถœ๋ ฅ ๊ฒฐ๊ณผ:  2
# Python
print(12 // -5)   # ์ถœ๋ ฅ ๊ฒฐ๊ณผ: -3
print(-12 // 5)   # ์ถœ๋ ฅ ๊ฒฐ๊ณผ: -3
print(-12 // -5)  # ์ถœ๋ ฅ ๊ฒฐ๊ณผ:  2

 

 

cf) ์šฐ์„ , ๊ฐ๊ฐ์˜ ์–ธ์–ด์—์„œ ๊ตฌํ•œ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋ฅผ ์ด์šฉํ•˜์—ฌ ์œ„์—์„œ ์ •์˜ํ•œ ๋‚˜๋จธ์ง€ ์‹์ด ๋งž๋Š”์ง€ ํ™•์ธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

a๋กœ ์‹์„ ๋‹ค์‹œ ์ •์˜ํ•ด๋ณด๋ฉด a = b * ๋ชซ + ๋‚˜๋จธ์ง€ 

// Swift
// 12, 5
print(5 * 2 + 2)      // ์ถœ๋ ฅ ๊ฒฐ๊ณผ: a = 12
// 12, -5
print(-5 * (-2) + 2)  // ์ถœ๋ ฅ ๊ฒฐ๊ณผ: a = 12
// -12, 5
print(5 * (-2) - 2)   // ์ถœ๋ ฅ ๊ฒฐ๊ณผ: a = -12
// -12, -5
print(-5 * 2 - 2)     // ์ถœ๋ ฅ ๊ฒฐ๊ณผ:  a = -12
# Python
# 12, 5
print(5 * 2 + 2)      # ์ถœ๋ ฅ ๊ฒฐ๊ณผ:  a = 12
# 12, -5
print(-5 * (-3) - 3)  # ์ถœ๋ ฅ ๊ฒฐ๊ณผ:  a = 12
# -12, 5
print(5 * (-3) + 3)   # ์ถœ๋ ฅ ๊ฒฐ๊ณผ:  a = -12
# -12, -5
print(-5 * 2 - 2)     # ์ถœ๋ ฅ ๊ฒฐ๊ณผ:  a = -12

 

์œ„์˜ ๋‚˜๋จธ์ง€ ์‹์ด ์„ฑ๋ฆฝํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!


๊ฒฐ๋ก 

๊ฒฐ๋ก ์ ์œผ๋กœ, ์ด๋Ÿฌํ•œ ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ด์œ ๋Š” 

Swift์™€ Python์˜ ๋ชซ์„ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

 

Swift์˜ ' / '์—ฐ์‚ฐ์ž๋Š” ๋‚˜๋จธ์ง€๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๋ฒ„๋ฆผ์„ ํ•ด์„œ ๋ชซ์„ ๊ตฌํ•˜๊ณ ,

Python์˜ ' // '์—ฐ์‚ฐ์ž๋Š” ๋‚ด๋ฆผ์„ ํ•ด์„œ ๋ชซ์„ ๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ๋ฒ„๋ฆผ์€ 0์˜ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๊นŒ์šด ์ •์ˆ˜๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด๊ณ ,

๋‚ด๋ฆผ์€ ์Œ์ˆ˜ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๊นŒ์šด ์ •์ˆ˜๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


Swift

https://developer.apple.com/documentation/swift/binaryinteger/(_:_:)

 

Python

https://docs.python.org/3/reference/expressions.html#binary-arithmetic-operations

 


์ด ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด

-1.3์œผ๋กœ ์˜ˆ๋กœ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

-1.3์€ ์•ž ๋’ค๋กœ -1๊ณผ -2์˜ ์ •์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

-1๊ณผ -2 ์ค‘ -1์ด 0๊ณผ ๋” ๊ฐ€๊น๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ„๋ฆผ์€ ํ•˜๋ฉด -1์ด ๋ฉ๋‹ˆ๋‹ค.

 -1๊ณผ -2 ์ค‘์— -2๊ฐ€ ๋” ์Œ์ˆ˜ ๋ฐฉํ–ฅ์— ๊ฐ€๊น๊ธฐ ๋•Œ๋ฌธ์—  ๋‚ด๋ฆผ์„ ํ•œ๋‹ค๋ฉด -2๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

 

๋งˆ์ง€๋ง‰์œผ๋กœ ์ฝ”๋“œ ์˜ˆ์‹œ๋กœ ํ™•์ธ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

let num = -1.3

print(trunc(num))  // ์ถœ๋ ฅ ๊ฒฐ๊ณผ: -1.0
print(floor(num))  // ์ถœ๋ ฅ ๊ฒฐ๊ณผ: -2.0

 


์š”์•ฝ

์š”์•ฝํ•˜์ž๋ฉด!

 

Swift๋Š” ๋ชซ์„ ๊ตฌํ•  ๋•Œ, ๋‚˜๋จธ์ง€๋ฅผ ๋ฒ„๋ฆผํ•˜์—ฌ ๋ชซ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

์ด๋กœ ์ธํ•ด, '% ์—ฐ์‚ฐ์ž' (๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฒ„๋ฆผ์ด ์ ์šฉ๋˜์–ด ๋‚˜๋จธ์ง€๊ฐ€ ๊ตฌํ•ด์ง‘๋‹ˆ๋‹ค.

(Swift์™€ ๊ฐ™์€ ๋™์ž‘์„ ํ•˜๋Š” ์–ธ์–ด ์ค‘์—๋Š” JS, C# ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.)

 

๋ฐ˜๋ฉด์—, Python๊ณผ ๊ฐ™์ด '% ์—ฐ์‚ฐ์ž'๋ฅผ ๋ชจ๋“ˆ๋กœ ์—ฐ์‚ฐ์ž๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ์–ธ์–ด๋“ค์€
๋ชซ์„ ๊ตฌํ•  ๋•Œ ๋ฒ„๋ฆผ์ด ์•„๋‹Œ ๋‚ด๋ฆผ์„ ํ•˜์—ฌ ๋ชซ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด, Swift์™€๋Š” ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

(Python๊ณผ ๊ฐ™์€ ๋™์ž‘์„ ํ•˜๋Š” ์–ธ์–ด ์ค‘์—๋Š” Ruby ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.)

 

๋”ฐ๋ผ์„œ, Swift๋Š” Modulo Operator๊ฐ€ ์•„๋‹Œ Remainder Operator๋กœ ๋ถˆ๋ฆฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.


๋‡Œํ”ผ์…œ

Apple์ด ๋‹ค๋ฅธ ์–ธ์–ด๋“ค๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ Remainder Operator๋ฅผ ์„ ํƒํ•œ ์ด์œ ๋ฅผ ์ œ ๋‡Œํ”ผ์…œ!! ๋กœ ์ƒ๊ฐํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

 

๋ณดํ†ต 12๋ฅผ -5๋กœ ๋‚˜๋ˆ„๋ฉด ๋ชซ์€ -2.4๊ฐ€ ๋‚˜์˜ค๊ฒ ์ง€๋งŒ, ๋ชซ์€ ์‹ค์ œ ๊ฐ’๋ณด๋‹ค ์ž‘์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ์ •์ˆ˜ ๋ถ€๋ถ„์—์„œ -1์„ ํ•ด์ฃผ์–ด ๋ชซ์„ ์ƒ๊ฐํ•˜๋Š”๋ฐ, ์Œ์ˆ˜์˜ ๊ฒฝ์šฐ ์ด๋Ÿฐ ์ฒ˜๋ฆฌ๊ฐ€ ๋” ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค.

์Œ์ˆ˜์—์„œ ๋ชซ์„ ๋” ์ž‘๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ •์ˆ˜ ๋ถ€๋ถ„์— -1์ด ์•„๋‹Œ +1์„ ํ•ด์ฃผ๊ณ  ๋ถ€ํ˜ธ๋ฅผ ๋ถ™์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

(12๋ฅผ 5๋กœ ๋‚˜๋ˆ„๋ฉด 2.4์ด๊ณ  ๋ชซ์€ 2์ธ ๋ฐ˜๋ฉด, 12๋ฅผ -5๋กœ ๋‚˜๋ˆ„๋ฉด -2.4์ด๊ณ  ๋ชซ์€ -3์ž…๋‹ˆ๋‹ค.)

 

(์ดˆ,์ค‘,๊ณ  ๊ต์œก๊ณผ์ •์—์„œ ์ด๋ ‡๊ฒŒ ๊ฐ€๋ฅด์ณค๋˜ ๊ฑฐ ๊ฐ™์€๋ฐ..! ์•„๋‹์ˆ˜๋„ ์žˆ์–ด์š”..!!)

 

์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ Swift์˜ Remainder Operator๋Š”

์‚ฌ์šฉ์ž๊ฐ€ ๋” ์‰ฝ๊ฒŒ ๊ฐ’์„ ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์ธก๋ฉด์ด ์žˆ์„ ๊ฒƒ์œผ๋กœ ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ํŽธ์˜์„ฑ ๊ณ ๋ ค๊ฐ€ Apple์˜ ์„ค๊ณ„ ์„ ํƒ์— ์˜ํ–ฅ์„ ๋ฏธ์ณค์„ ๊ฒƒ์œผ๋กœ ์กฐ์‹ฌ์Šค๋Ÿฝ๊ฒŒ ์ถ”์ธกํ•ด๋ด…๋‹ˆ๋‹ค. ๐Ÿค”๐Ÿ˜Š


๋งˆ๋ฌด๋ฆฌ

Modulo Operator์™€ Remainder Operator์˜ ๋™์ž‘ ์ฐจ์ด๋ฅผ ์ดํ•ดํ•˜๊ณ ์ž

๋‚˜๋จธ์ง€ ์‹์„ ๋„์ž…ํ•˜์—ฌ ์„ธ๋ถ€์ ์œผ๋กœ ์‚ดํŽด๋ดค์Šต๋‹ˆ๋‹ค

 

์•„์ง๊นŒ์ง€ '๋ชจ๋“ˆ๋กœ ์—ฐ์‚ฐ์ž๋Š” ~~๊ณ , ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž๋Š” ~~์•ผ' ๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋Š” ํ™•์‹คํ•œ ์ •์˜๋Š” ์—†์ง€๋งŒ,

๋‘ ๋ฐฉ์‹์˜ ์ฐจ์ด๋ฅผ ํ™•์‹คํžˆ ์ดํ•ดํ•˜๊ณ  ์–ธ์–ด๋งˆ๋‹ค์˜ ์ฐจ์ด๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ๋™์ž‘ ๋ฐฉ์‹์˜ ์ฐจ์ด๋ฅผ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.


์ž˜๋ชป๋œ ๋‚ด์šฉ์ด๋‚˜ ๊ถ๊ธˆํ•˜์‹  ์ ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š”. ๐Ÿค“

์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ“ ์ฐธ๊ณ  ์ž๋ฃŒ

 

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

[Swift] Swift์˜ ํƒ€์ž… ์บ์ŠคํŒ… (Type Casting)  (1) 2024.06.12
[Swift] Docs_(1) The Basics  (0) 2024.01.23