JAVA/java 공부

[JAVA] 반복문 for문 / break / continue

congs 2023. 3. 26. 00:24

반복문 : 규칙적인 일을 반복적으로 해야하는 경우 사용

for문 

for ( 초기화; 조건식; 증감연산식;) {
    실행문;
}
  • 반복 순서 : 초기화 - 조건식 - 실행문 -> 증감연산식 - 조건식 - 실행문 -> 증감연산식 (반복)

 

1. 초기화

  • 조건식이나 실행문에서 사용하는 변수를 초기화, 처음 한번만 실행 (생략 가능)
  • 시작하는 값 설정 ( 증감변수 i, j 이용)
    • 1부터 시작 ( i=1 )

 

2. 조건식

  • 반복문의 반복을 결정하는 식 (참=반복, 거짓=그만)
  • (생략 가능/생략하면 true로 무한 반복)
  • 끝나는 값 설정
    • 10까지 ( i ≤ 10 ) ⇒ i가 11 되면 반복 종료

 

3. 증감연산식

  • 조건식에서 사용하는 변수를 증가/감소 시켜서 반복 횟수 결정 (생략 가능)
  • 1씩 증가 : i = i + 1, i++ / 1씩 감소 : i = i - 1, i--

 

4. 사용 예시

for(int i=1; i<=10; i++) {
	System.out.print(i+" ");
}
// 결과: 1 2 3 4 5 6 7 8 9 (1~10)

for (int i=1; i<=10; i=i+2) { //i=i+2과 i+=2 동일
	System.out.print(i+" ");
}
// 결과: 1 3 5 7 9 (홀수)

for (int i=10; i>=1; i-=1) { //i=i-1과 i-=1 동일, i--도 가능
	System.out.print(i+" ");
}
// 결과: 10 9 8 7 6 5 4 3 2 1 (역순 10~1)

for (int i=2; i<=10; i+=2) {
	System.out.print(i+" ");
}
//결과: 2, 4, 6, 8, 10 (짝수)

5. 출력 (향상된 for문)

for (int tmp : arr) { //임시변수 tmp에 arr에 있는 하나씩 순서대로 변수를 넣는다
	System.out.print(tmp+" "); //arr에 하나씩 넣은 걸 순서대로 출력
}

//무조건 0번지부터 마지막 번지까지 순차 탐색을 하는 동안 사용하여 출력.
//int tmp이므로 arr도 int

 


for(  ;  ;  ) 생략해 사용하는 경우

int i = 1; //(초기값)
int sum = 0;
		
for( ; ; ) {
	sum += i; //(조건식)
	if(i == 100) { //(실행문)
  break;
 }
	i++; 
			
System.out.println("1~100까지의 합: " + sum); //결과 확인

 


break ; 

: 조건식, 반복문을 빠져나오는 역할

int i = 1; //(초기값)
int sum = 0;
		
for( ; ; ) {
	sum += i; //(조건식)
	if(i == 100) { //(실행문)
  break;
}
i++; 
			
System.out.println("1~100까지의 합: " + sum);
  • Scanner + for + break사용 예
//글자를 입력받아 (한글자) 그대로 글자를 출력하세요.(a->a, b->b, y->종료)
// y를 입력받는 경우에는 종료
		
Scanner word = new Scanner(System.in);
		
for ( ; ; ) {
		
	System.out.println("한글자를 입력해주세요.(단, y/Y를 입력하는 경우 종료됩니다): ");
	char ch = word.next().charAt(1); 
	System.out.println(ch + "를 입력하였습니다.");
	if( ch == 'y' || ch == 'Y') {
		System.out.println("종료되었습니다.");
		break;
	}
}
	
word.close();

continue ;

: 해당조건이 있는 경우 반복을 pass

// 짝수만 출력
int h = 0;
while (h<=10) {
	h++;	
	if ((h % 2) == 1) {
		continue;
	}	
	System.out.print(h+ " ");
}