Java의 기본 문법 중 제어문을 간단한 설명과 예제를 통해 알아보자
Java의 제어문에는 for, while, if, switch
문이 있다.
그 중 for문과 while문을 어떤 경우에 사용해야 하는지 알아보자.
간단하게는 다음과 같이 나뉜다.
프로그램의 반복 횟수를 알고 코드를 작성한다면 >>> for문
프로그램의 반복 횟수를 모르고 코드를 작성한다면 >>> while문
public class hello {
public static void main(String[] args) {
// 1) 반복횟수를 알고 프로그램을 작성할 때는 for
for (int i = 0; i < 10; i++) {
System.out.println(100);
}
// 2) 반복횟수를 모르고 프로그램을 작성할 때는 while
// 예시: 우박 수열 프로그램
int n = 52;
while(true) {
System.out.println(n);
if(n%2 == 0 ) {
n = n/2;
} else {
n = n*3+1;
}
if(n == 1) {
System.out.println("exit");
break;
}
}
}
}
위의 예시에서 ,
1) 프로그램의 반복 횟수가 100이라는 것을 알고 코드를 작성했기 때문에 >>> for문을 사용하였다.
2) 우박 수열의 경우, 어떤 수를 input에 넣어도 1을 return한다. 하지만, 1이 나오기까지 프로그램이 몇 번 반복될지는 모르게 때문에 >>> while문을 사용하였다.
아래의 3가지 조건을 모두 만족시켜 한다.
이렇게 해야, for문이 몇 번 반복되는지 한눈에 파악할 수 있어 유지보수가 간편하기 때문이다.
public class hello {
public static void main(String[] args) {
// 바람직하지 않은 코드 >> 몇 번 도는지 알 수 없음 ! 결과는 나오지만 유지보수가 되지 않음
// for (int i = 7; i >=100 10; i+=3)
// 정석 1: num만큼 반복
for (int i = 0; i < num; i++)
// 정석 2: num만큼 반복
for (int i = 1; i <= num; i++)
// 정석 3: 2*num + 1만큼 반복
for (int i = -num; i <= num; i++)
// 정석 4: 2중 for 문에서는 int j = i로 시작 가능
for (int i = 0; i <n2; i++) {
for (int j = i; j < n1; j++) {
}
}
}
}
for문은 {}을 통해 범위를 지정하기 때문에 세미콜론(;)이 생략될 수 있다.
또한 for문 안의 코드가 단일 코드인 경우도 생략 가능하다.
public class hello {
public static void main(String[] args) {
// 세미 콜론이 없어도 가능 (2중 for문)
for (int i = 0; i <n2; i++)
for (int j = i; j < n1; j++)
System.out.println();
// 세미 콜론이 없어도 가능 (위 코드와 동일)
for (int i = 0; i < n2; i++)
for (int j = i; j < n1; j++)
System.out.println();
int i;
for (i = 0; i < 10; i++);
System.out.println(i);
}
}