for (int i = 0; i < 10; i++) {
System.out.println(i); // 🔴
}

i 를 많이 사용 - 문맥에 따라 index를 뜻함 // 루프 블록 안에서 변수값을 바꾸는 것으로 4번 과정 대신 가능
for (int i = 0; i < 10;) {
System.out.println(i);
i += 2;
}
System.out.println("\n- - - - -\n");
for (double d = 123.45; d > 0; d -= 32.1) {
System.out.println(d);
}
for (String s = ""; s.length() < 11; s += s.length()) {
System.out.println(s);
}
System.out.println("\n- - - - -\n");
// 💡 쉼표로 구분하여 여럿 사용 가능
// ⚠️ 변수의 자료형은 한 종류만 가능 (혼용 안 됨)
for (byte a = 0, b = 10; a <= b;) {
System.out.printf("a: %d, b: %d%n", a++, b--);
}
변수의 초기화는 외부에서도 가능하다. 위의 코드를 바꾸어보면
int a = 0;
double b = 10.0;
for<( ; a<=b ; ) {
System.out.pringln("a: %d, b: %f%n",a++,b--);
}
System.out.println("\n- - - - -\n");
// 윷놀이 예제에 적용
String yuts = "도개걸윷모";
char yut = '도';
boolean isValid = false;
for (int i = 0; i <= yuts.indexOf(yut); i++) {
isValid = true;
System.out.println("앞으로");
}
if (!isValid) System.out.println("무효");
// 종료조건이 없는 for 루프
for (;;) {
System.out.println("영원히");
}
System.out.println("닿지 않아"); // ⚠️ 실행되지 않음
// 종료조건을 만족시키지 못하는 무한루프
for (int i = 0; i < 10; i++) {
System.out.println("그래도");
i--;
}
System.out.println("닿지 않아"); // ⚠️ 실행되지 않음
// 4의 배수 차례로 10개 배열에 담기
int count = 10;
int[] multiOf4 = new int[count];
for (int i = 1, c = 0; c < count; i++) {
if (i % 4 == 0) {
multiOf4[c++] = i;
}
}
// multiOff4 = [4,8,12,16,20,24,28,32,36,40]
// 💡 배열 순환 (기본적인 방법)
for (int i = 0; i < multiOf4.length; i++) {
System.out.println(multiOf4[i]);
}
아래 나오는 표현법을 잘 알아두어야 한다.
System.out.println("\n- - - - -\n");
// 💡 for each 문법 - 배열이나 이후 배울 콜랙션 등에 사용
for (int num : multiOf4) {
System.out.println(num);
}
foreach System.out.println("\n- - - - -\n");
int sumOfArray = 0;
for (int num : multiOf4) {
sumOfArray += num;
}
for문, 전부 사용할 때는 foreach문 System.out.println("\n- - - - -\n");
for (String s : "호롤롤로".split("")) {
System.out.println(s);
}
// 구구단 예제
for (int i = 1; i < 10; i++) {
for (int j = 1; j < 10; j++) {
System.out.printf("%d X %d = %2d%n", i, j, i * j);
}
}
각 for문에서 선언한 변수들은 그 for문 안에서만 사용할 수 있다. 예를 들어 위에 코드에서 j를 j가 선언된 for문이 아닌 i의 for문에서 출력하려고 하면 오류가 뜬다.
String[][] quotesInLangs = {
{
"I am vengeance.",
"I am night.",
"I am Batman.",
},
{
"나는 복수를 하지.",
"나는 밤이지.",
"나는 배트맨이지.",
},
};
String result = "";
for (String[] quotes : quotesInLangs) {
for (String quote : quotes) {
result += quote + " "; // 🔴
}
result = result.trim().concat("\n");
}
System.out.println(result);
/* result = " I am vengeance. I am night. I am Batman.
나는 복수를 하지. 나는 밤이지. 나는 배트맨이지.*/
for (int i = 0; i < 100; i++) {
// 💡 continue : 한 루프만 건너뜀
if (i % 3 == 0) continue;
// 💡 break : 반복 전체를 종료
if (i == 10) break;
System.out.println(i);
}
System.out.println("\n- - - - -\n");
String str = "호";
// ⭐️ 무한루프 탈출에 사용 가능
for (;;) { // 다음 강의 while을 더 많이 사용
str += "롤";
System.out.println(str);
if (str.length() == 100) break;
}
str += "로";
System.out.println(str);