1. for문
- 지정된 횟수만큼 반복 처리하는 구문
1. 초기식으로 초기값을 설정 2. 조건식을 확인하고 참이면 중괄호 안의 내용({…})을 수행 3. 닫는 중괄호( } )를 만나면 증감식으로 이동 4. 조건식을 다시 확인하고 참이면 반복, 거짓이면 for문을 종료
📝for문 형식
For(초기식; 조건식; 증감식){
조건식이 참일 경우 반복 실행
}
🖥️ 예시1
public class helloWorld{
public void main(String[] args) {
// 버거킹 3번 출력하기
for(int i = 1; i <= 3; i++) {
System.out.println(i + ". 버거킹");
}
}
}
결과값
1. 버거킹
2. 버거킹
3. 버거킹
🖥️ 예시2
public class helloWorld{
public static void main(String[] args) {
//1 ~ 5까지의 모든 합 구하기
int sum = 0;
for(int i = 0; i <= 5; i++) {
sum += i;
System.out.println("i : " + i + " sum : " + sum);
}
System.out.println("최종 결과 :" + sum);
}
}
for문의 예외형식
-초기식 생략
-조건식 생략
-증감식 생략
-초기식과 증감식 여러 개 포함 가능
int i = 0; // 먼저 초기화 됨
for( ; i < 5; i++){ // 초기화식 생략
...
}
for(i = 0; ; i++){
int sum += i;
if(sum > 5) break; // 조건식 부분
for(i = 0; i < 5; ){
...
i = (++i) % 10;
}
int i, j;
for(i = 0, j = 0; (i + j) < 6 ; i ++, j++){
...
}
for( ; ; )
2. while문
- 기본 원리는
for문
과 동일- 단,
for문
과 달리 소괄호 안에 조건식만 들어감
→for문
은 초기식, 조건식, 증감식을 모두 한 줄에 작성
→while문
은 초기식과 증감식을 외부에 정의해 주어야 함
📝while문 형식
초기식;
while(조건식) {
조건식이 참일 경우 반복 실행
증감식;
}
조건식이 거짓이면 반복문 종료
🖥️ 예시1
public static void main(String[] args) {
// 1 ~ 5까지 더하기
// 초기식
int sum = 0;
int i = 1;
while(i <= 5) { //while(조건식)
// 증감식
sum += i;
i++; // 생략하면 무한루프
}
System.out.println("sum : " + sum);
}
결과값
sum : 15
🖥️ 예시2
public static void main(String[] args) {
//시스템이 종료될 때까지 무한 반복
Scanner sc = new Scanner(System.in);
int menu = 0;
//5번 누르면 시스템 종료
while(menu <= 4) { //4 이하의 숫자 입력 시 무한반복
System.out.println("0 ~ 4번메뉴를 선택하세요(종료 5번) : ");
menu = sc.nextInt(); //메뉴 입력
if(menu <= 4) {
System.out.println(menu + "번 메뉴를 선택하셨습니다.");
}else {
System.out.println("시스템을 종료합니다.");
}
}
}
결과값
3. do ~ while문
While문
과 같이 조건에 따라 반복하지만 조건을 나중에 비교do
{…} 안의 문장을 우선적으로 1회 실행하고 조건을 판별
→ 이후 조건식이 참일 때do반복문
안의 문장을 실행
📝do - while문 형식
초기식;
do {
1회 무조건 실행, 조건식이 참일 경우 반복실행
증감식;
} while(조건식);
조건식이 거짓이면 반복문 종료
🖥️ 예시1
public static void main(String[] args) {
int i = 5;
do {
System.out.println(i + ". 버거킹");
i++; //증감식 써줘야함
}while(i < 4);
System.out.println("종료합니다.");
}
결과값
5. 버거킹 //1회 우선 출력
종료합니다. //조건식 판별 후 거짓일 경우 종료
이중반복문(Nested For)
- 반복문 안에 반복문을 사용하여 이중으로 반복문을 사용하는 것
🖥️ 예시1
public static void main(String[] args) {
int total = 0;
for(int i = 0; i < 3; i++) {
System.out.println("i의 값은 : " + i);
for(int j = 0; j < 5; j++) { //i 1번 출력에 j 5번 출력)
total = total + 1;
System.out.print(total + " ");
}
System.out.println(); //안쪽 for문 출력 후 줄바꿈
}
}
결과값
i의 값은 : 0
1 2 3 4 5
i의 값은 : 1
6 7 8 9 10
i의 값은 : 2
11 12 13 14 15
🖥️ 예시2
public static void main(String[] args) {
// 구구단 2단 출력하기
for(int dan = 2; dan <= 2; dan++) {
for(int i = 1; i <= 9; i++) {
// dan = 2일 때 i는 1 ~ 9까지 반복 후 바깥 for문으로 이동
System.out.println(dan + " X " + i + " = " + dan * i);
}
}
}
결과값
2 X 1 = 2
2 X 2 = 4
2 X 3 = 6
2 X 4 = 8
2 X 5 = 10
2 X 6 = 12
2 X 7 = 14
2 X 8 = 16
2 X 9 = 18
반복문에서 사용 가능한 제어문
- continue;
continue 이후의 명령들은 무시되고 반복문 시작으로 돌아감- break;
이 문장이 실행되면 반복문을 무조건 종료
🖥️ continue 예시
public static void main(String[] args) {
for(int i = 1; i < 5; i++) {
System.out.println(i + ". 버거킹");
if(i < 3) continue;
System.out.println(i + ". continue 아래의 문장");
}
}
결과값
1. 버거킹
2. 버거킹
3. 버거킹
3. continue 아래의 문장
4. 버거킹
4. continue 아래의 문장
무한루프
- 증감식이 설정되지 않거나, 증감식이 수행되더라도 조건식이 거짓이 되지 않은 형태
- 조건식이 항상 참이므로, 반복문이 종료되지 않음
- 프로그램이 PC의 자원을 매우 많이 사용하게 되므로, 시스템 다운을 발생시킬 수 있음
🖥️ for문 무한루프 예시
public static void main(String[] args) {
for(int i = 0; i < 10; i--){
System.out.println(i);
} //i--로 인해 i 는 계속 10보다 작아서 무한 반복
}
🖥️ while문 무한루프 예시
public static void main(String[] args) {
int i = 0; // 반드시 변수 먼저 선언
while( i < 10 ){
// 증감식(i = i + 1) 생략
System.out.println( "무한루프" );
}
}