반복문

haribo·2021년 2월 27일
0

Java

목록 보기
1/17

Why?

반복문이 왜 생겨났을까?

인간은 단순 반복작업을 못하고, 오류를 많이 발생시킴

컴퓨터 : 그럼 내가 할게

효율적인 처리를 위해 발명한게 컴퓨터니까 ㅇㅇ

for문

for (초기식; 조건식; 증감식) {

. . . 반복적으로 동작할 구문 . . .

}
  1. 최초로 초기식을 설정한다.
  2. 초기식을 설정한 다음에는 조건식을 판단한다.
  3. 만약 조건식이 참이라면 반복적으로 동작할 구문을 1회 수행한다.
  4. 반복구문을 수행한 후, 증감식으로 이동한다
  5. 증감식을 수행한 후, 다시 조건식으로 이동한다. 여전히 조건식이 참이라면 반복수행을 처리하고, 그렇지 않다면 for문을 종료한다.
  • 초기식 : 초기화해주는 식? 최초 1회만 실행된다.
  • 조건식 : 반복문이 동작할 조건을 의미한다. 조건 값이 false인 경우 반복은 종료된다.
  • 증감식 : 반복구문 수행 뒤 실행되는 식. ++, — 등이 주로 쓰인다.
  • 초보자들이 많이 하는 실수 (초기식; 조건식; 증감식;);

Main01 - 1부터 100까지의 합을 구하는 예제

public class Main01 {

	public static void main(String[] args) {
		int sum = 0;
		
		// i값이 1부터 100까지 증가하는 동안, i의 값을 sum에 누적한다.
		
		for (int i=1; i<=100; i++) {
			// 결과값 누적
			sum += i;
		}
		
		System.out.println(sum);
	}
}
  1. int sum = 0; 으로 sum 값 초기화
  2. int i = 1 으로 i값 1로 대입
  3. i ≤ 100; 1은 100보다 작으니 참
  4. for문 밖에 지정해둔 sum에 i값인 1 더하기, sum = 1
  5. i++ 실행, 2로 증가
  6. i ≤ 100; 2는 100보다 작으니 여전히 참
  7. for문 밖에 지정해둔 sum에 i값인 2 더하기, sum = 3\
  8. 100까지 반복, 최종 결과값 5050

Main02 - 7의 배수를 출력하는 예제

public class Main02 {

	public static void main(String[] args) {
		int j = 0;
		for (int i = 1; i < 10; i++) {
			j = 7 * i;
			System.out.println(j);
		}
	}
}
  1. int j = 0; 으로 j값 초기화
  2. int 1 = 1으로 i값 1로 대입
  3. i = 1, 1<10 = 참
  4. j = 7 * 1 실행
  5. j 출력, 7 실행
  6. i값 +1
  7. 구구단 7단임

While문

  • for문과 마찬가지로 반복문임
  • for문은 초기식, 조건식, 증감식을 모두 내장하지만, while문은 조건식만 내장하기 때문에 초기식과 증감식을 외부에 따로 정의해 주어야 함.
초기식;

while ( 조건식 ) {

		... 반복적으로 동작할 구문 ...

		증감식

}

Main3 - 1~100까지의 합 구하기

public class Main03 {

	public static void main(String[] args) {
		int sum = 0;
		
		int i = 1; //초기식
		while (i <= 100) //조건식 {
			sum += i; //반복구문
			i++; //증감식
		}

		System.out.println(sum);
	}
}
  1. int sum = 0; sum 값 초기화
  2. int i = 1; // 초기식, i에 1 대입
  3. i ≤100 // 조건식, 1≤100 참.
  4. sum에 1 더해짐, sum = 1
  5. i++; → i값 1증가
  6. 2≤100 참
  7. sum에 2더해짐, sum = 3
  8. 100까지 더해질때까지 반복

Main4

public class Main04 {

	public static void main(String[] args) {
		int i = 1;
		int j = 0;
		
		while (i < 10) {
			j = 7 * i;
			System.out.println(j);
			i++;
		}

	}

}

Main5

public class Main05 {

	public static void main(String[] args) {
		int sum = 0;
		int i = 1;
		
		do {
			sum += i;
			i++;
		} while (i <= 100);
		
		System.out.println(sum);

	}
}

Main6

public class Main06 {

	public static void main(String[] args) {
		int i = 1;
		int j = 0;
		
		do {
			j = 7 * i;
			System.out.println(j);
			i++;
		} while (i <= 9);
	}
}

Main7

public class Main07 {

	public static void main(String[] args) {
		int max = 100;
		
		while (max > 100) {
			System.out.println("while문");
		}
		
		do {
			System.out.println("do~while문");
		} while (max > 100);
	}
}

Main8

public class Main08 {
// 무한 루프 예시
	public static void main(String[] args) {
		for (int i=0; i<10; i--) {
			System.out.println(i);
		}
	}
}

Main9

public class Main09 {
// 무한루프
	public static void main(String[] args) {
		int sum = 0;
		while(true) {
			System.out.println(++sum);
		}
	}
}

이 포스트는 itpaper.co.kr에서 제공되는 강의자료를 바탕으로 작성되었습니다.

profile
그림 그리는 백엔드 개발자

0개의 댓글