2013. 7. 25. 16:34

제어문

 : 프로그램의 코드 실행 흐름을 제어하는 구문(위->아래)

 : 조건, 반복, 분기 등을 통해 흐름을 제어

 

■ 조건문 : if, switch

■ 반복문 : for, 향상된for, while, dowhile

■ 분기문 : continue, break, goto

 

● if

 : 조건을 제시한 뒤 만족하거나 불만족할 때의 코드를 분기하는 제어문

 : 조건은 반드시 boolean

 : if~elseif~else 구간 중 만족하는 조건이 있다면 블럭을 실행하고 if문을 끝낸다.

 : if문은 중첩으로 사용 가능하다 : 제어문 중첩

if(조건식)

{

    ~~

if(조건식) 

              ~~

} else 

              ~~

} else if(조건식)

{

     ~~

} else 

{

     ~~

}

 

 

● switch

 : switch case문, 조건 1개를 갖고 제어를 분기

switch (조건값)

{

case 값1:  // label

실행문;

break;

case 값2:  

실행문;

break;

default: // else와 같다.

실행문;

break;      

}

 

switch (조건값)

{

case 값1

case 값2:

실행문;

break;

}    // 값1, 값2 둘다 같은 블럭을 실행한다. (break가 없어서 가능한 경우)

 

● for

 : 특정 실행 코드 블럭을 원하는 횟수만큼 반복 제어

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

{

실행문;

 

● 향상된 for문

for (variable ele : locationEle) {}  //locationEle : 배열 또는 컬렉션

 

 

1
2
3
4
5
6
7
int[] n = new int[] {40,20,10,50,30,60,35,41,23,78} ;
 
for (int i : n) {
    System.out.println(i);
 
//n의 배열 길이만큼 루프를 돌되 각 사이클마다 i에 객체주소를 저장

 

 

다음처럼 배열을 직접 선언하여 사용하기도 한다.

 

 

1
for (String i : new String[] { "+", "-", "*", "/" })

 

 

 

● while

 

 

1
2
3
4
5
6
int n=1; //초기식
while (n < 11) //조건식
{
    System.out.println(n);
    ++n; //증감식
}

 

 

 

● do while

 

 

1
2
3
4
5
6
7
int n = 1;
do
{
    System.out.println(n);
    ++n;
}
while (n<=10); //선실행 후에 조건식을 참조하기 때문에 조건식이 false라도 일단 실행문은 처리된다.

 

 

 

● continue, break

 break : 현재 자신이 속한 제어문을 탈출

 

 

1
2
3
4
5
6
7
8
for(int i=1; i<11; i++)
{
    if(i==5)
    {
        break
    }
    System.out.println(i);
}   //1,2,3,4

 

 

 continue : 현재 자신이 속한 제어문(if문X) 처음으로 되돌아감

 

 

1
2
3
4
5
6
7
8
for(int i=1; i<11; i++)
{
    if(i==5)
    {
        continue
    }
    System.out.println(i);
}   //1,2,3,4,6,7,8,9,10

 

 

 이름 있는 반복문에서 continue

 

 

1
2
3
4
5
6
7
8
9
10
11
loop: for(int i=0; i<10; i++)
{
    System.out.println("x = " + i);
    for(int j=0; j<10; j++)
    {
        System.out.println("j = " + j);
        if(j>=5)
            continue loop; //loop란 이름을 붙인 for문으로 continue
                                                    //break와 성격이 겹치기 때문에 잘 쓰이진 않음.
    }
}

 

 

'java' 카테고리의 다른 글

Args, 비정형인자  (0) 2013.07.25
연산자 우선순위  (0) 2013.07.25
파일명 일괄변경  (0) 2013.07.25
폴더정보(폴더, 파일의 용량과 갯수) 출력  (0) 2013.07.25
피보나치  (0) 2013.07.25
Posted by 1+1은?