๋ฐ๋ณต๋ฌธ์ ํน์ ์์
์ด ๋ฐ๋ณต์ ์ผ๋ก ์ํ๋๋๋ก ํ ๋ ์ฌ์ฉ๋๋ฉฐ ๋ฐ๋ณต๋ฌธ์ ์ข
๋ฅ๋ก๋ for๋ฌธ while๋ฌธ ๊ทธ๋ฆฌ๊ณ do-while๋ฌธ์ด ์์ต๋๋ค. for๋ฌธ๊ณผ while๋ฌธ์ ์๋ก ์ํธ ๋ณํ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ ์ค ์ด๋ ์ชฝ์ ์ ํํด๋ ์ข์ต๋๋ค.
for๋ฌธ์ ๋ฐ๋ณต ํ์๋ฅผ ์๊ณ ์์ ๋ ์ ํฉํฉ๋๋ค. ์กฐ๊ฑด์์ด true์ธ ๋์ ์คํ๋ฌธ์ ๋ฐ๋ณต์ ์ผ๋ก ์ํํฉ๋๋ค.
for๋ฌธ์ ์กฐ๊ฑด์์๋ ์ด๊ธฐํ, ์กฐ๊ฑด์, ์ฆ๊ฐ์์ด ์์ต๋๋ค. ์ ์ผ ๋จผ์ '์ด๊ธฐํ'๊ฐ ์ํ๋๊ณ '์กฐ๊ฑด์' -> '์ํ๋ฌธ' -> '์ฆ๊ฐ์'์ ์์๋ก ๋ฐ๋ณต๋๋ค. ๋ฐ๋ณตํ๋ค๊ฐ ์กฐ๊ฑด์์ด false๊ฐ ๋๋ฉด for๋ฌธ์ ๋น ์ ธ๋๊ฐ๊ฒ ๋๋ค.
for(์ด๊ธฐํ; ์กฐ๊ฑด์; ์ฆ๊ฐ์) {
// ์ํ๋ฌธ
}- ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉ๋ ๋ณ์๋ฅผ ์ด๊ธฐํํ๋ ๋ถ๋ถ์ด๋ฉฐ ์ฒ์์ ํ๋ฒ๋ง ์ํ
- ์กฐ๊ฑด์์ ๊ฐ์ด
true์ด๋ฉด ๋ฐ๋ณต์ ๊ณ์,false์ด๋ฉด ๋ฐ๋ณต์ ์ค๋จํ๊ณ for๋ฌธ์ ๋ฒ์ด๋จ - ์กฐ๊ฑด์์ ์๋ชป ์์ฑํ๋ฉด ์ํ๋ฌธ์ด ํ ๋ฒ๋ ์ํ๋์ง ์๊ฑฐ๋ ๋ฌดํ๋ฐ๋ณต์ ๋น ์ง ์ ์๊ธฐ ๋๋ฌธ์ ์ฃผ์ ์๋ง
- ๋ฐ๋ณต๋ฌธ์ ์ ์ดํ๋ ๋ณ์์ ๊ฐ์ ์ฆ๊ฐ(++)๋๋ ๊ฐ์(--)์ํค๋ ์
- ์ฆ๊ฐ์์ ์ํด์ ๋ณ์์ ๊ฐ์ด ๋ณํ๋ค๊ฐ
false๊ฐ ๋์ด for๋ฌธ์ ๋ฒ์ด๋จ - ๋ณดํต ์ฆ๊ฐ ์ฐ์ฐ์๊ฐ ์ฌ์ฉ๋์ง๋ง ๋ค์ํ ์ฐ์ฐ์๋ค๋ก ์ฆ๊ฐ์ ์์ฑ ๊ฐ๋ฅ
for(int i = 1; i <= 5; i++) {
System.out.println("This is for๋ฌธ");
}
for(int i = 1; i <= 5; i++) {
System.out.print(i);
}
for(int i = 1; i <= 10; i++) {
int sum += i;
System.out.printf("1๋ถํฐ %2d๊น์ง์ ํฉ: %2d", i, sum);
}ํฅ์๋ for๋ฌธ์ ๋ฐฐ์ด๊ณผ ์ปฌ๋ ์ ์ ์์ ํ์ ์ผ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ๋ฐฐ์ด ๋ฐ ์ปฌ๋ ์ ํญ๋ชฉ์ ๊ฐ์๋งํผ ๋ฐ๋ณตํฉ๋๋ค.
for( ํ์
๋ณ์๋ช
: ๋ฐฐ์ด ๋๋ ์ปฌ๋ ์
) {
// ๋ฐ๋ณตํ ๋ฌธ์ฅ
}
/* == ์์ == */
String[] stacks = {"spring", "mysql", "mariadb"}
for(String stack = stacks) {
System.out.println("OO๋์ " + stack + "์ ๊ณต๋ถํ๊ณ ์์ต๋๋ค");
}๋ฐฐ์ด ์์ ๋ก ํฅ์๋ for๋ฌธ์ ์ฌ์ฉํด ๋ณด์์ต๋๋ค. ์์ ์์ ์ฒ๋ผ ํฅ์๋ for๋ฌธ์ ๋ฐฐ์ด์ด๋ ์ปฌ๋ ์ ์ ์์๋ค์ ์ฝ์ด์ค๋ ์ฉ๋๋ก๋ง ์ฌ์ฉํ ์ ์๋ค๋ ์ ์ฝ์ด ์์ต๋๋ค.
while๋ฌธ์ for๋ฌธ์ ๋นํด ๊ตฌ์กฐ๊ฐ ๊ฐ๋จํฉ๋๋ค. while๋ฌธ์ ์กฐ๊ฑด์์ ๊ฐ์ด true์ผ ๊ฒฝ์ฐ ๋ฌดํ๋ฃจํ๊ฐ ๋๊ธฐ ๋๋ฌธ์ ์ฃผ์ํด์ผ ํฉ๋๋ค.
while(์กฐ๊ฑด์) {
// ์กฐ๊ฑด์์ ์ฐ์ฐ๊ฒฐ๊ณผ๊ฐ `true`์ธ ๋์, ๋ฐ๋ณต ์ํ
}1๋ถํฐ 10๊น์ง ๋ง์ ์ ํ๋ ์์ ๋ฅผ ๋ณด๊ฒ ์ต๋๋ค.
int num = 0;
int sum = 0;
while(num < 10){
num++;
sum += num;
}์์ ์์ ์ฒ๋ผ ์กฐ๊ฑด๋ฌธ์ ์ ์ ๋ ฅํ๋ค๋ฉด ์ค๊ณํ๋๋ก while๋ฌธ์ด 10๋ฒ ์ํํ๊ณ ์ข ๋ฃ๋ฉ๋๋ค.
Scanner sc = new Scanner(System.in);
int result = 0;
while(true) {
int num1 = sc.nextInt();
int num2 = sc.nextInt();
char oper = input.next().charAt(0);
switch(oper){
case '+': return num1 + num2; break;
case '-': result = num1 - num2; break;
case '*': result = num1 * num2; break;
case '/': result = num1 / num2; break;
default: result = "์๋ชป๋ ์
๋ ฅ๊ฐ์
๋๋ค."; break;
}
System.out.println(result);
result = 0;
}์์ ์์ ๊ฐ์ ๊ฒฝ์ฐ์๋ ๊ณ์ฐ๊ธฐ๋ฅ์ ๊ตฌํํ ์์ ์
๋๋ค. ๊ณ์ฐ์ ์ฌ๋ฌ๋ฒ ํ๋ ค๊ณ while์ true๋ฅผ ์
๋ ฅํ์ง๋ง ์ข
๋ฃํ ์ ์๋ ๋ฌดํ ๋ฃจํ์ ๋น ์ง๊ฒ ๋์์ต๋๋ค.
for๋ฌธ์ ์กฐ๊ฑด์๊ณผ ํจ๊ป ์ฆ๊ฐ์์ ์์ฑํ์ง๋ง while๋ฌธ์ ๊ทธ๋ ์ง ์๊ธฐ์ ์์ง์๊ณ ์ข
๋ฃํ ์ ์๋ ํ๋ก์ธ์ค๋ฅผ ๋ง๋ค์ด ์ฃผ์
์ผํฉ๋๋ค.
do while๋ฌธ์ while๋ฌธ์ ๋ณํ์ผ๋ก ์กฐ๊ฑด์์ ์ํด ๋ฐ๋ณต์คํํ๋ค๋ ์ ์ while๋ฌธ๊ณผ ๋์ผํฉ๋๋ค. ํ์ง๋ง do-while์ ๊ฒฝ์ฐ {}์์ ๋ด์ฉ์ ๋จผ์ ์คํ์ํค๊ณ ์กฐ๊ฑด์์ ๊ฒ์ฌํ๋ค๋ ์ ์์ for๋ฌธ ๊ทธ๋ฆฌ๊ณ while๋ฌธ๊ณผ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
do{
// ์คํ๋ฌธ(์ฒ์ ํ๋ฒ์ ๋ฌด์กฐ๊ฑด ์คํ ๋๋ค)
} while(์กฐ๊ฑด์);