[JAVA NOTE]6. LOOP

19388 단어 JavaJava






반복문이란?

  • 같은 행동을 반복 실행하는 문법
  • 소스코드의 효율성과 코드의 가독성을 높임
  • for/while/do-while 문




for문


  • 초기식(시작조건),조건식(실행조건),증감식으로 구성됨
for( 초기식(시작조건)  ;  조건식(실행조건)  ;  증감식 ) {
	// 반복 내용
}
  • for( 초기식(시작조건) ; 조건식(실행조건) ; 증감식 )
    → 초기식(시작 조건)에서는 변수 1개를 선언하거나 for문 밖에서 선언된 변수의 값을 바꿀 수 있음 , 만약 초기식에서 변수를 선언했다면 그 변수는 for문을 벋어날 수 없으며 시작 조건은 처음 1회만 실행됨 → 지역변수의 특징을 가지고 있다는 점! 염두해두기
    → 조건식(실행 조건)이 true를 만족할 때 for문이 동작함
    → 증감식은 변수의 값을 변화 시킬 수 있음 전위 연산자를 사용하는 것을 제외 하고 for문의 중괄호 부분이 실행된 이후 이 부분이 동작함

  • {// 반복 내용}
    → 중괄호 내부의 소스코드는 for 문의 실행조건을 만족할 시 동작하는 구간
    → 중괄호가 존재하지 않아도 for문은 동작하지만 그 경우 for문 괄호 다음의 한 줄만 동작합니다.
    → break 문을 사용하면 for문을 벗어날 수 있습니다.
    → 중괄호 내부에서 선언된 변수는 중괄호를 벗어나면 사용이 불가능합니다. → 지역변수
import java.io.*;
class Main {
		public static void main(String[] args) throws Exception {
			for(int i = 1 ; i <= 3 ; i++) {
				System.out.println(i + "번째 반복");
			}
		}
}




위의 for문 동작 방식


  1. 초기식에서 i가 1로 초기화됨
  2. i가 조건식 i≤3에 만족하여 해당 내용을 실행하여 “1번째 반복”이라는 출력값이 나옴
  3. i가 증감식에서 1을 증가시키고 다시 조건식을 검토함
  4. i=2인 상태로 i≤3을 만족하므로 해당 내용을 실행 “2번째 반복”이라는 출력값이 나옴
  5. i가 증감식에서 1을 증가시키고 다시 조건식을 검토함
  6. i=3인 상태로 i≤3을 만족하므로 해당 내용을 실행 “3번째 반복”이라는 출력값이 나옴
  7. i가 증감식에서 1을 증가시키고 다시 조건식을 검토함
  8. i=4인 상태로 i≤3을 만족하지 않으므로 해당 for문을 벗어남






이중 for 문

for문 내부에 for문이 존재하는 구조


import java.io.*;
class Main {public static void main(String[] args) throws Exception {
			for(int i = 1 ; i <= 3 ; i++) {
				for(int j = 1 ; j <= 5 ; j++) {
					System.out.println("i = " + i + "번째 반복");
					System.out.println("j = " + j + "번째 반복");
				}
			}
		}
}




직각삼각형 출력하기


import java.io.*;
class Main {
public static void main(String[] args) throws Exception {
		for(int i=0; i<5; i++) {
            for(int j=0; j<=i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
	
	}
}






while문


  • 실행 조건만으로 동작하도록 설정됨
while( /* true 혹은 false 형태의 동작 조건 */ ) {
	//동작 내용	
}
  • 예시문제
import java.io.*;
class Main {
		public static void main(String[] args) throws Exception {
			int a = 1;
			while(a < 3) {
				int b = 0;
				System.out.println(a + " " + b);
				a++;
				b++;
			} // while 문 종료
		}
}






위 코드 동작과정


  1. a는 1로 초기화되어 있음
  2. while문에 조건식을 만나 a<3이라는 조건이 성립하므로 해당 내용을 실행함
  3. a=1 / b = 0 (초기화) 출력한 후 a와 b 각각 1씩 증가
  4. a=2 / b = 1 로 다시 while문의 조건을 검사함 a=2로 a<3을 만족하므로 내용을 실행함
  5. a=2 / b = 0 (초기화) 출력한 후 a와 b 각각 1씩 증가
  6. a=3 / b= 1 로 다시 while문의 조건을 검사함 a=3로 a<3을 만족하지 않으므로 내용을 빠져나감
  • b는 while문 내부에서 선언된 변수이기 때문에 while문이 종료되는 중괄호를 만나 한루프를 마무리하게 되면 메모리에서 해제되어 더 이상 사용 X
  • while문 종료에서 메모리가 해제되며 while문이 다시 동작해도 이전 루프에서 사용한 변수 b는 사라진 변수가 됨 → 지역변수




무한루프에 관하여


→ 조건이 항상 true여서 계속 반복하는 현상

→ 동작 조건을 정확하게 명시하여야 함 , 명시하지 않으면 반복문을 빠져나가지 못하고 멈추는 무한루프 발생 따라서 종료 조건 명시에 유의할것




루프?


→ 반복문에서 1회 동작하는 행동




do-while문


while문과 차이점

  • while문은 동작 조건을 먼저 확인하고 동작 내용을 실행할지 하지 않을지 판단한다.
  • do-while문은 우선 1회 동작한 뒤 동작 조건을 확인하여 반복 여부를 판단함
    → do-while은 무조건 1회 실행 + 조건에 맞으면 더 실행 / while은 조건에 맞았을때만
do {
	// 동작 내용
} while( /* 동작 조건 */ );






break / continue 문

  • 강제로 반복문을 종료해야 되거나 실행부분을 건너뛸때 사용하는 문법

break문


  • switch 문 및 반복문을 벗어나기 위한 문법
  • break문을 만나면 즉시 반복문 혹은 switch 문이 종료됨
import java.io.*;
class Main {
		public static void main(String[] args) throws Exception {
			int a = 1;
			while(true) {
				System.out.println(a++);
				if(a > 5) {
					break;
				}
			} 
		}
}

//1
//2
//3
//4
//5

//break 문을 만나 빠져 나감




Continue문


  • 반복문에서만 사용되는 문법
  • 반복문에서 continue 문을 만나게 되면 반복문의 조건이 있는 곳으로 되돌아가게 됨
  • for문에서 continue문을 만나면 그 뒤에 어떤 코드가 있던 상관 없이 바로 증감식을 실행함
  • while문에서 continue문을 만나면 while문 동작 조건을 확인하는 곳으로 돌아감
import java.io.*;
class Main {
		public static void main(String[] args) throws Exception {
			int a = 1;
			while(true) {
				
				if(a > 10) {
					break;
				} else if(a % 2 == 1) {
					a++;
					continue;
				}
				
				System.out.println(a++);
				
			} 
		}
}
  • 위 코드 동작과정
    1. a>10 아니라면 아래 조건 수행 a>10이라면 종료

    2. a%2==1 → a가 홀수라면 (10이하) a가 1증가 되고 continue문을 만남

      → 출력문 실행 X

    3. a%2==0 → a가 짝수라면 (10이하) a가 출력되고 a의 값이 1증가됨

좋은 웹페이지 즐겨찾기