while ๋ฃจํ
for ๋ฃจํ์์ ์ด๊ธฐํ ๋ถ๋ถ๊ณผ ๊ฐฑ์ ๋ถ๋ถ์ ์์ ๊ณ , ๋กํ ๋ชธ์ฒด์ ์กฐ๊ฑด ๊ฒ์ฌ ๋ถ๋ถ๋ง ๋จ๊ฒจ ๋์ ๊ฒ
while (test-expression)
body
ํ๋ก๊ทธ๋จ์ ๋จผ์ test-expression์ ํ๊ฐํจ ํํ์์ด true๋ก ํ๊ฐ๋๋ฉด ๋ฃจํ ๋ชธ์ฒด์ ์๋ ๊ตฌ๋ฌธ(๋ค) ์คํ
๋ฃจํ ๋ชธ์ฒด์ ์คํ์ด ๋๋๋ฉด ์กฐ๊ฑด ๊ฒ์ฌ ํํ์์ผ๋ก ๋์์ ํํ์ ์ฌํ๊ฐ
์ด์ ๊ฐ์ ๋ฃจํ ์ฃผ๊ธฐ๋ ๊ฒ์ฌ ํํ์์ด false๊ฐ ๋ ๋๊น์ง ๋ฐ๋ณต
C ์คํ์ผ ๋ฌธ์์ด๊ณผ๋ ๋ฌ๋ฆฌ, string ํด๋์ค ๊ฐ์ฒด๋ ๋ฌธ์์ด์ ๋์ ์ธ์ํ๊ธฐ ์ํ์ฌ ๋ ๋ฌธ์๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค.
for์ while
์ผ๋ฐ์ ์ผ๋ก for ๋ฃจํ๋ ์ด๊ธฐ๊ฐ, ์ข ๋ฃ ๊ฐ, ์นด์ดํฐ ๊ฐฑ์ ๋ฐฉ๋ฒ์ ํ ๊ณณ์ ๋ฃ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฃจํ๋ฅผ ์นด์ดํฐ ํด์ผ ํ ๋ ์ฃผ๋ก ์ฌ์ฉ
while ๋ฃจํ๋ ์ผ๋ง๋งํผ ๋ฃจํ๋ฅผ ๋ฐ๋ณตํด์ผ ํ ์ง ๋ฏธ๋ฆฌ ์ ์ ์์ ๋ ์ฌ์ฉ
์๊ฐ ์ง์ฐ ๋ฃจํ
ANSI C์ C++ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด ์ฉ๋๋ก ์ฌ์ฉํ ์ ์๋ clock()ํจ์๋ฅผ ์ ๊ณต. ์ด ํจ์๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋ ์๊ฐ๋ถํฐ ์ด ํจ์๊ฐ ํธ์ถ๋ ์๊ฐ๊น์ง ๊ฒฝ๊ณผํ ์์คํ ์๊ฐ์ ๋ฆฌํดํจ
clock() ํจ์๊ฐ ๋ฆฌํดํ๋ ๊ฐ์ ์ด ๋จ์ ์๊ฐ์ด ์๋ ์ด ํจ์๊ฐ ๋ฆฌํดํ๋ ๋ฐ์ดํฐํ์ ์ด๋ค ์์คํ ์์๋ longํ, ๋ค๋ฅธ ์์คํ ์์๋ unsigned long ํ... ๋ฑ ์ผ ์๋ ์๋ค.
ctime c๊ตฌํ ์์คํ ์์ time.h์ด ํค๋ ํ์ผ์ ์ด๋น ์์คํ ์๊ฐ ๋จ์ ์๋ฅผ ์๋ ค์ฃผ๋ CLOCKS_PER_SEC ๋ผ๋ ๊ธฐํธ ์์๋ฅผ ์ ์ํจ
clock() ํจ์๊ฐ ๋ฆฌํดํ๋ ์์คํ ์๊ฐ์ ์ด ์์๋ก ๋๋๋ฉด ์ด ๋จ์์ ์๊ฐ์ ์ป์ ์ ์๋ค. ๋๋ ์ด ๋จ์์ ์๊ฐ์ ์ด ์์๋ฅผ ๊ณฑํ๋ฉด ์์คํ ์๊ฐ์ ์ป์ ์ ์๋ค.
ctime์ clock()ํจ์๊ฐ ๋ฆฌํดํ๋ ๋ฐ์ดํฐํ์ ๋์ฉ ์ด๋ฆ์ผ๋ก clock_tํ์ ์ ์ํจ. ๋ณ์๋ฅผ clock_tํ์ผ๋ก ์ ์ธ ๊ฐ๋ฅ
์ปดํ์ผ๋ฌ๋ ์ด๊ฒ์ longํ์ด๋ unsigned intํ ๋๋ ์ฌ์ฉํ๋ ์์คํ ์ ์ ๋นํ ๋ค๋ฆ ๋ฐ์ดํฐํ์ผ๋ก ๋ณํ
<์ฌ์ฉ ์์>
#include<iostream>
#include<ctime>
int main()
{
using namespace std;
cout<<"์ง์ฐ ์๊ฐ ์ด ๋จ์ ์
๋ ฅ : ";
float secs;
cin>>secs;
clock_t delay = secs * CLOCKS_PER_SEC;
cout<<"์นด์ดํธ ์์\n";
clock_t start = clock();
while(clock()-start<delay)
;
cout<<"์ข
๋ฃ\n";
return 0;
}
do while ๋ฃจํ
ํ์ถ ์กฐ๊ฑด ๋ฃจํ: ๋ฃจํ ๋ชธ์ฒด๋ฅผ ๋จผ์ ์คํ ํ, ์กฐ๊ฑด์ ๋์ค์ ๊ฒ์ฌ
์กฐ๊ฑด์ ํ๊ฐํ๊ธฐ ์ ์ ๋ฃจํ ๋ชธ์ฒด๋ฅผ ์ ์ด๋ ํ๋ฒ ์คํ
do while ๊ตฌ๋ฌธ
do
body
while(test-expression);
do while ๋ฃจํ๊ฐ ์ ๋นํ ๊ฒฝ์ฐ : ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ์ ๋ฐ์์ผ ํ ๋๋ ์กฐ๊ฑด์ ๊ฒ์ฌํ๊ธฐ ์ ์ ๋ ฅ๋ถํฐ ๋ฐ์์ผ ํจ
Range ๊ธฐ๋ฐ์ for ๋ฃจํ(C++11)
C++11์ Range ๊ธฐ๋ฐ์ for ๋ฃจํ๋ผ๊ณ ๋ถ๋ฆฌ๋ ์๋ก์ด ํํ๊ฐ ์ถ๊ฐ๋จ
double price[5]={4.99,10.99,6.87,7.99,8.49};
for(double x:price)
cout<<x<<std::endl;
์ ์ฝ๋์์ x๋ prices ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์๋ก ์ด๊ธฐํ๋จ
์ฒซ ๋ฒ์งธ ์์๊ฐ ์ถ๋ ฅ๋ ํ์ ๋ฐฐ์ด์ ๋จ์์๋ ๋ค์ ์์๋ฅผ ๋ํ๋ด๊ธฐ ์ํด ๋ฃจํ๊ฐ x์ ์ ์ฅ๋๋ฉด์ 5๊ฐ์ ์์ ๋ชจ๋ ์ถ๋ ฅ
์ฆ, ๋ฐฐ์ด์ range ์์ ํฌํจ๋๋ ๋ชจ๋ ๊ฐ ๋ค์ด ๋ฃจํ๋ฅผ ๋๋ฉด์ ์ถ๋ ฅ
์ฌ๊ธฐ์, ๋ฐฐ์ด์ ๊ฐ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด์ ๋ฃจํ ๋ณ์์ ๋ค๋ฅธ ๊ตฌ๋ฌธ์ด ํ์ํจ
for(double &x:prices)
x=x*0.80;
Range ๊ธฐ๋ฐ for ๋ฃจํ๋ ์ด๊ธฐํ ๋ฆฌ์คํธ์๋ ์ฌ์ฉ ๊ฐ๋ฅ
for(int x:{3,4,2,8,6})
cout<<x<<" ";
cout<<'\n';