For Programmer

5. 제어문(가정문,반복문) 본문

Programming language/Java

5. 제어문(가정문,반복문)

유지광이 2021. 8. 12. 00:01
728x90

if (조건문) 에서 사용되는 조건문이란 참과 거짓을 판단하는 문장을 말한다.

if문의 기본 구조

		if (조건문) {
		    <수행할 문장1>
		    <수행할 문장2>
		    ...
		} else if {
			<수행할 문장a>
			<수행할 문장b>
		} else {
		    <수행할 문장A>
		    <수행할 문장B>
		    ...
		}

if - else 구조는 if가 성립하면 else if 와 else를 수행하지 않고 다음 코드로 넘어간다. 만약 if가 성립하지않으면 else if 를 실행하고 참이면 바로 if문을 빠져나온다. 

 

switch/case 문

switch/case 문은 if 문과 비슷하지만 좀 더 정형화된 모습의 제어문이다.

switch(입력변수) {
	    case 입력값1: ...
	         break;
	    case 입력값2: ...
	         break;
	    ...
	    default: ...
	         break;
	}

입력변수의 값과 일치하는 case 입력값(입력값1, 입력값2, ...)이 있다면 해당 case문 하위의 문장이 실행된다. case문마다 break 라는 문장이 있는데 해당 case문을 실행 한 뒤 switch문을 빠져나가기 위한 것이다. 만약 break 문이 빠져 있다면 그 다음의 case 문이 실행되게 된다. (따라서 해당 조건을 실행하고 빠져나가고 싶으면 case마다 반드시 break가 필요하다.)

 

	int a = 3;
        switch (a) {
            case 8: 
            	System.out.println("8");
                break;
            case 7: 
        		System.out.println("7");
                break;
            case 6: //조건 여러개 지정 가능
            case 5:
            case 4:
            	System.out.println("4<=a && 6>=a");
            	break;
            case 3:
            case 2:	
            	System.out.println("2<=a && 3>=a");
            	break;
        	}

반복문

 

while (조건문) {
		    <수행할 문장1>
		    <수행할 문장2>
		    <수행할 문장3>
		    ...
		}
	int treeHit = 0;
		while (treeHit < 10) {
		   treeHit++; //1씩 증가
		   System.out.println("나무를  " + treeHit + "번 찍었습니다.");
		   if (treeHit == 10) { // 10이면 출력
		       System.out.println("나무 넘어갑니다.");
		    }
		}
        
    }
나무를  1번 찍었습니다.
나무를  2번 찍었습니다.
나무를  3번 찍었습니다.
나무를  4번 찍었습니다.
나무를  5번 찍었습니다.
나무를  6번 찍었습니다.
나무를  7번 찍었습니다.
나무를  8번 찍었습니다.
나무를  9번 찍었습니다.
나무를  10번 찍었습니다.
나무 넘어갑니다.

 

반복문에서의 break, continue 사용하기

		int a = 0;
		
		while(true) {
			System.out.print(a++ +" ");
			if (a == 10)
				break; //a가 10이면 해당 반복문을 빠져나간다.
		}
	}
0 1 2 3 4 5 6 7 8 9
		int a = 0;
		
		for(int i = 0 ; i<10 ; i++) {
			
			if (i == 5) {	
				continue; //i가 5이면 continue 이하의 식을 실행하지않고 바로 증감식ㅑi++)으로 이동한다. 
			}
			System.out.print(i +" ");
		}
	}
0 1 2 3 4 6 7 8 9
		int a = 0;
		while (a < 10) {
			a++;
		    if (a % 2 == 0) {
		        continue;
		    }
		    System.out.println(a);
		    
		}
1
3
5
7
9

break문
- 반복문이 실행되고 있는 시점에서 가장 근접한 반복문(루프) 탈출한다.
- 여러개의 반복문이 중첩된 경우 현재 위치한 반복문 하나만 탈출한다.

 continue문
- 반복도중 continue 이후의 실행 처리를 중단하고 반복문의 증감식(for문),조건식(while문)으로 이동한다.
- 정밀한 제어구조를 만들때 사용한다.


do while 문

int a = 10;
		do { //do while 문은 처음에 반드시 한번 실행 후 조건 판단
		    System.out.print(a +" ");
		}while (a++ < 10);
10

do - while 문은 반드시 한번 실행하고 그다음 조건을 검사한다.

 

for - each문(자바 J2SE 5.0 버전 이상)

String[] numbers = {"one", "two", "three"};
for(int i=0; i<numbers.length; i++) {
	System.out.println(numbers[i]);
	}
		
String[] numbers2 = {"one", "two", "three"};
for(String number: numbers2) { //numbers2 에있는 멤버들 하나씩 number에 대입된다.
	System.out.println(number);
	}

ArrayList에서도 사용가능하다.

ArrayList<String> numbers = new ArrayList<String>();
numbers.add("one"); //arrayList에 "one"추가
numbers.add("two"); //arrayList에 "two"추가
numbers.add("three"); //arrayList에 "three"추가

for(String number: numbers) {  //numbers를 인덱스 순서대로 number에 대입
    System.out.print(number+ " "); //number출력
		}
one two three

단, foreach문은 따로 반복회수를 명시적으로 주는 것이 불가능하고, 1스탭씩 순차적으로 반복될때만 사용가능하다는 제약이 있다.

728x90

'Programming language > Java' 카테고리의 다른 글

6-1. 클래스 - 멤버 변수  (0) 2021.08.13
6. 클래스  (0) 2021.08.13
4. 배열  (0) 2021.08.11
3. 연산자  (0) 2021.08.11
2. 출력 함수(printf,println)  (0) 2021.08.10
Comments