반응형

반복문

 

for문

반복 횟수가 정해져 있는 문장을 실행할 때 사용

예를 들도록 하겠습니다

        int a;
        int sum=0;
        
        for (a = 1; a <= 10 ; a+=2) { //for( 초기; 조건; 증감) for문은 초기치와 목적치에만 영향을 받게 해줘야 함
            System.out.print(a + " ");
            sum += a; // 누적        
       }

해당 소스를 보면 변수 a는 1부터 10까지 2씩 증가한다는 조건을 확인할 수 있습니다.

 

        System.out.println("\nfor 탈출 후 a값은 ? " + a);
        System.out.println("합은 " + sum);

1 3 5 7 9 를 출력하게 된다.

 

 

다른 몇가지 예를 들어보겠습니다.

 

 

1) for문을 통하여 아스키코드 대문자 A - Z 를 출력하는 방법을 보여드리겠습니다.

 

for(int i = 65; i <=99; i++) {
            System.out.print((char)i + " ");
        }
 

i가 출력문에서 65가 들어가야하지만 앞에 (char)로 형 변환을 주었기 때문에 A를 출력하게 된다.

그러므로 결과값은 

 

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c 과 같이 출력 된다.

 

 

 

2) 거꾸로 아스키코드 문자를 정수로 출력하는 반복문을 실행해보겠습니다.

 

for(int i = 'A'; i <= 'Z'; i++) {
            System.out.print((Integer)i + " ");
        }
 

출력문에서 i가 A부터 출력 되어야 하지만 앞에 (Integer)로 형 변환을 주었습니다.

그러므로 이번 결과값은 다음과 같습니다.

 

65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 

 

 

 

3) 증감식을 다르게 주어보겠습니다.

 

for(int i = 90; i >=65; i-=2) {
            System.out.print((char)i + " ");
        }
 

이번에는 i의 조건이 90부터 65까지 줄어드는 것을 반복합니다. 그런데 증감식을 확인해보면 2씩 줄어들고 출력에서 형 변환을 준 것을 볼 수 있습니다. 그렇다면 이번 결과값은 다음과 같습니다.

 

Z X V T R P N L J H F D B 

 

 

 

4) for문 안에 초기값과 증감식을 2개씩 줘보겠습니다.

 

for(int a = 0, b = 5; a <= 5; a++, b++) {
            System.out.println(a + " " + b);
        }
 

 

초기값을 각각 a = 0 과 b = 5 주고 a++ , b++ 로 1씩 증가시키면

0 5
1 6
2 7
3 8
4 9
5 10

과 같이 출력됩니다.

a가 만족하는 값 5까지 반복하고 for문을 탈출합니다.

 


 

다중 for문

 

 

for문 안에 for문에 들어가있는 것을 다중 for문이라고 합니다.

바로 예를 들어보도록 하겠습니다.

for(int m = 1; m <= 3; m++) {
        System.out.println("m : " + m);
        for(int n = 1; n<=4; n++) {
            System.out.print("n = " + n);
        }
        System.out.println();
    }
r

돌아가는 방식은 이렇습니다.

 

- m이 1인 경우 m 값을 출력하고 다음 for문으로 들어갑니다.

- n이 1부터 시작하고 for문이 만족하는 4까지 반복 출력해주고 내부 for문을 빠져나갑니다.

위와 같은 과정을 m이 3이 될 때까지 반복하고 나옵니다.

 

출력값은 다음과 같습니다.

 

m : 1
= 1n = 2n = 3n = 4
m : 2
= 1n = 2n = 3n = 4
m : 3
= 1n = 2n = 3n = 4

continue문

 

ex: for(초기값; 조건식; 증감식) {
        for(초기값; 조건식; 증감식) {
            
            실행문;
            continue// 안쪽 for문으로 이동            
            continue// ex for문으로 
        }
    }

 

 

여기서 ex는 라벨로 별명을 주어준것과 비슷한 의미이다.

 

 

for(int aa = 1; aa <= 10; aa++) {
            
        if(aa == 3continue;  // aa가 3이면 하단 문맥을 생략하고 다시 위로 올라감
        
        System.out.println(aa);
        
        // if(aa == 5) return; // return을 만나면 메인의 중괄호를 끝냄
        if(aa == 5break// 해당되는 구간에서 반복문을 탈출 시킴
        System.out.println("nice");
   }

 

결과

1
nice
2
nice
4
nice
5
nice
6
nice
7
nice
8
nice
9
nice
10
nice
 

break문

 

가장 가까운곳의 반복문이나 다음에 나올 내용인 switch문을 빠져나간다.

 

continue 설명때 사용한 소스코드에서 break문을 사용해보도록하겠습니다.

for(int aa = 1; aa <= 10; aa++) {
            
            if(aa == 3continue;
            
            System.out.println(aa);
 
            if(aa == 5break// 해당되는 구간에서 반복문을 탈출 시킴
            System.out.println("nice");
        }
 

 

결과값

 

1
nice
2
nice
4
nice
5

while문

 

같은 반복문이지만 for문과 달리 조건이 만족할때만 반복한다.

 

        int w = 1;
        
        while(w <= 5) {
            System.out.println("w : " + w);
            w++// 반복문 탈출 문장이 반드시 필요
        }
 

 

w의 초기값은 1로 주어졌으며, 5가 되기전까지 만족하므로 반복하여 실행하게 된다.

 

w : 1 
w : 2 
w : 3 
w : 4 
w : 5 

do ~ while문

 

while문과 동일하지만 차이점이 있다면 do~while문은 조건식이 뒤에주어집니다.

 

        w = 1;
        do {
            System.out.println("w = " + w );
            w++;
        }while(w<= 5);
 
 
결과값은동일합니다.
 
= 1
= 2
= 3
= 4
= 5

 

반복문에 관련하여 공부한 문제

2020/03/03 - [JAVA/JAVA 프로그래밍 응용] - for문을 이용하여 어떤 수1의 배수이면서 수2의 배수의 개수와 그들의 합

2020/03/03 - [JAVA/JAVA 프로그래밍 응용] - for문을 이용한 구구단 찍기

반응형

'JAVA > JAVA' 카테고리의 다른 글

6 - 클래스 ( class )  (0) 2020.03.03
5 - 배열(Arrary)  (0) 2020.03.03
4 - 조건문 if & switch  (0) 2020.03.03
2 - 연산자  (0) 2020.03.03
1 - 데이터 타입 & 형 변환  (0) 2020.03.02

+ Recent posts