프로그램을 작성하다 보면 똑같은 실행문을 반복적으로 실행해야 할 경우가 많이 발생한다. 실행문이 많아질수록 코드 양이 엄청 늘어날 것이다. 이런 경우 for 문을 사용하면 코드를 획기적으로 줄일 수 있다.
for 문
for(초기화식; 조건식; 증감식) {
실행문;
}
for 문이 실행될 때 초기화식이 제일 먼저 실행된다. 그런 다음 조건식을 평가해서 true면 실행문을 실행시키고, 실행문을 모두 실행하면 증감식이 실행된다. 조건식이 false가 되면 for 문을 종료하고 블록을 건너뛴다.
for 문 예제 : 1부터 100까지의 합 구하기
public class SumExample {
public static void main(String[] args) {
int sum = 0;
int i;
for (i = 1; i <= 100; i++) {
sum += i;
}
System.out.println(sum);
}
}
초기화식은 조건식과 실행문, 증감식에서 사용할 변수를 초기화하는 역할을 한다. 어떤 경우에는 초기화식이 둘 이상 있을 수 있고, 증감식도 둘 이상 있을 수 있다. 이런 경우에는 다음과 같이 (,)로 구분해서 작성한다.
for (int i = 0, j = 100; i < 50 && j >= 50; i++, j--) { ... }
초기화식에서 선언된 변수는 for 문 블록 안에서만 사용되는 지역 변수다. for 문 밖에서도 사용하고 싶다면 for 문 밖에서 변수를 선언하면 된다.
int i;
for (i = 1; i < 100; i++) { ... }
for 문은 또 다른 for 문을 내포할 수 있는데, 이것을 중첩 for 문이라고 한다. 이 경우 바깥 for 문이 한 번 실행 될 때마다 중첩된 for 문은 지정 횟수만큼 반복하고 다시 바깥 for 문으로 돌아간다.
중첩 for 문 예제 : 구구단 출력
public class MultiplicationTable {
public static void main(String[] args) {
for(int i = 2; i <= 9; i++) {
System.out.println(i + "단");
for(int j = 1; j <= 9; j++) {
System.out.println(i + "x" + j + "=" + i*j);
}
}
}
}
중첩 for 문 예제 : 별 출력
public class Main {
public static void main(String[] args) {
int n = 5;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
심화 예제 : 오른쪽 정렬된 별 출력
public class Main {
public static void main(String[] args) {
int n = 5;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= i; k++) {
System.out.print("*");
}
System.out.println();
}
}
}
심화 예제 : 피라미드 모양 별 출력
public class Main {
public static void main(String[] args) {
int n = 5;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}
for (int k = 1; k <= 2 * i - 1; k++) {
System.out.print("*");
}
System.out.println();
}
}
}
'Language > JAVA' 카테고리의 다른 글
| [JAVA] break 문과 continue 문 (0) | 2024.09.03 |
|---|---|
| [JAVA] while 문 (0) | 2024.09.03 |
| [JAVA] switch 문 (7) | 2024.09.03 |
| [JAVA] Math.random 메소드 (0) | 2024.09.03 |
| [JAVA] if 문 (2) | 2024.09.03 |