[D] ๋ฐ˜๋ณต๋ฌธ

[์›๋ณธ ๋งํฌ]

D์˜ ๋ฐ˜๋ณต๋ฌธ์—๋Š” while, do-while, for, foreach, foreach_reverse ๋“ฑ์ด ์žˆ๋‹ค.

while๋ฌธ
๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐ˜๋ณต๋ฌธ์ด๋‹ค. ์กฐ๊ฑด์‹์ด true๋ผ๋ฉด ๊ณ„์† ๊ตฌ๋ฌธ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. image

image


for๋ฌธ
๋‹ค๋“ค ์•Œ๊ณ ์žˆ์„ while๋ฌธ์˜ ์ถ•์•ฝํ˜•ํƒœ๋‹ค.
์ดˆ๊ธฐ์‹๊ณผ ์กฐ๊ฑด์‹, ์ฆ๊ฐ์‹์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.
์œ„์˜ ์ฝ”๋“œ๋ฅผ for๋ฌธ์œผ๋กœ ๋ฐ”๊พธ๋ฉด ์ด๋ ‡๊ฒŒ ๋œ๋‹ค. image

image


do-while
๋ฌด์กฐ๊ฑด ํ•œ๋ฒˆ ์‹คํ–‰ํ•˜๊ณ  ๋ฐ˜๋ณต์„ ์ˆ˜ํ–‰ํ•˜๋Š” while์˜ ๋ณ€ํ˜•์ด๋‹ค.
while๊ณผ ํฐ ์ฐจ์ด๋Š” ์—†์œผ๋‚˜ image

image

์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ๋„ ํ•œ๋ฒˆ์€ ์ˆ˜ํ–‰๋œ๋‹ค๋Š”๊ฒŒ ๋‹ค๋ฅด๋‹ค. image

image ์“ธ์ผ์€ ๊ฑฐ์˜ ์—†๋‹ค.


foreach๋ฌธ
๋ฐฐ์—ด ๋“ฑ์˜ ๋ณตํ•ฉ๊ฐ’์„ ์ˆœํšŒํ• ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
foreach(์ˆœํšŒ๋ณ€์ˆ˜; ์ˆœํšŒ๋Œ€์ƒ)
**ย ย ย  ๊ตฌ๋ฌธ**

์ˆœํšŒ๋ณ€์ˆ˜์˜ ํƒ€์ž…์€ ์ž๋™์œผ๋กœ ์ถ”๋ก ๋˜๋ฏ€๋กœ, ๋ช…์‹œํ•  ํ•„์š”๋Š” ์—†๋‹ค.
์•„๋ž˜ ์ฝ”๋“œ๋Š” ๋‹จ์ˆœํ•œ ๋ฐฐ์—ด์„ ํ•˜๋‚˜ ์ˆœํšŒํ•˜๋ฉฐ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค. image

image

ํ•„์š”ํ•˜๋‹ค๋ฉด ํƒ€์ž…์„ ๋ช…์‹œํ•  ์ˆ˜๋„ ์žˆ๋‹ค. image

image

๊ทธ๋ฆฌ๊ณ , ์ˆœํšŒ๋ณ€์ˆ˜ ๋˜ํ•œ ํ•จ์ˆ˜์˜ ์ธ์ž์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐ’์„ ๋ณต์‚ฌํ•ด ๋ฐ›์•„์˜จ๋‹ค.
๋•Œ๋ฌธ์— ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋Š” ๋ณธ ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•œ๋‹ค. image

image

ํ•ด๊ฒฐ์ฑ…์€ ๊ฐ„๋‹จํ•˜๋‹ค. ์ฐธ์กฐ(ref)๋ฅผ ๋ถ™์ด๋Š” ๊ฒƒ์ด๋‹ค. image

image

์ˆœํšŒ๋ณ€์ˆ˜๋Š” 2๊ฐœ ์ด์ƒ์ผ ์ˆ˜๋„ ์žˆ๋‹ค. ๊ทธ๋Ÿด๋•Œ๋Š” ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š”๋ฐ,
์‚ฌ์‹ค ๋ฐฐ์—ด๋„ 2๊ฐœ์˜ ์ˆœํšŒ๋ณ€์ˆ˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ฒซ๋ฒˆ์งธ๋Š” ์ธ๋ฑ์Šค, ๋‘๋ฒˆ์งธ๊ฐ€ ๊ฐ’์ด๋‹ค. image

image


foreach_reverse
๊ฑฐ๊พธ๋กœ ๋„๋Š” foreach๋ฌธ์ด๋‹ค.
๊ทธ๊ฑฐ ๋ง๊ณค ๋˜‘๊ฐ™๋‹ค. image

image

๊ทธ๋ ‡๋‹ค.


์ฐธ์กฐ
https://dlang.org/spec/statement.html