Java/✿operation*제어문

[Java] 💻제어문

W_W_Woody 2021. 11. 21. 17:39

 

비교문(분기문)


if문

 

주어지는 조건의 결과가 true이면 if문 블럭을 코드를 실행

if문 블럭내의 수행문이 한 줄이면 중괄호 블럭 생략 가능

 

- 단일 if문

if( ) ;

 

- if ~ else문

if( ) ~ else ;

 

- 다중 if문

if( ) ~ else if( ) ~ else ;

 

💻 if문

 

 

switch문

 

If문의 조건값은 boolean형인데 비해,

switch문의 조건값은 long형을 제외한 정수형(byte, short, int) 또는 char형인 것이 다르다.

JDK7.0이상부터는 문자열도 지원함

 

switch(인자값) {
	case 조건값1 :      
              수행문; break;
	case 조건값2 :
              수행문; break;   
	case 조건값3 :        
              수행문; break       
	default :            
              수행문;      
}

System.exit(0); 

출력문 출력안되게 프로그램 종료시킬 수 있다.

 

반복문


for문

 

특정한 명령들을 정해진 규칙에 따라 반복처리 할 때 사용

for(초기식 ; 조건식 ; 증감식){
      수행문1;
      수행문2;
}

for(int i = 1 ; i <= 5 ; i++){
       System.out.println(i+"번째 수행");
}

 

확장 for문 (for - each문)

 

for(타입 변수명 : 배열명 또는 컬렉션)
주로 배열에서 사용

int[]array = {10,20,30,40,50};
...
for(int num : array){
	System.out.print(num + "\t"); }

int  →  배열 또는 컬렉션의 요소의 타입 

num  →  배열의 요소(저장된 데이터)를 읽어와서 저장한 변수
array  →  배열명 또는 컬렉션

출력 결과

 

while문

 

조건비교에 만족 할 때만 반복처리하는 제어문. 선 비교, 후 처리

console 프로그램 만들 시 while문을 가장 많이 이용

while문

while(true): 무한반복,무한루프 (증감식을 빼먹는 경우가 많은데 그럴경우에 무한루프에 빠질 수 있다.)

 

 

 

do - while문

 

조건비교에 불만족 하더라도 무조건 한번은 수행. 선 처리, 후 비교

do-while문

 

🔎 while문과 차이점

  •    - 조건식을 검사하기 전에 무조건 실행 부분을 한 번 실행
  •    - 마지막에 세미콜론(;)을 반드시 써야 함
public class WhileEx{
     public static void main(String args[]){
         int cnt = 0;
         while(cnt < 10){
               System.out.println(cnt);
               cnt++;
         }
         System.out.println("끝!");
     }
}
public class DoWhileEx{
     public static void main(String args[]){
         int cnt = 0;
         do{	         				//do 블럭을 한 번 실행하고 나서 조건체크함
              System.out.println(cnt);
              cnt++;
         }while(cnt < 10);			// ;
         System.out.println("끝!");
     }
}

while문의 조건을 do-while문의 조건에 넣을 경우에 두 번 실행될 수도 잇다.

public class DoWhileMain {
	public static void main(String[] args) {
		String str="Hello world";
		int su = 0;
		while(su++ < 5) { // 조건식 안에 증감식 사용 가능하다.
			System.out.println(str);
		}
		System.out.println("-----------");
		int su2=0;
		do {
			System.out.println(str);
		}while(su2++ <5); // do-while문에서 마지막에 ;필수!!!!
	}
}

 


return; (함수탈출)


break; (루프탈출)

(자기 자신을 감싸고 있는)가장 가까운 반복문을 탈출할 때 쓰이는 제어문

break문

public class BreakMain01 {
	public static void main(String[] args) {
		int n = 1;
		while(n<=10) {
			System.out.println(n);
			n++;
			if(n == 8){ //(중괄호 생략)
				break; //while문을 빠져나감
			}
		}
	}
}

다중 반복문일 때 전체 반복문을 빠져나가는 것이 아니라, break가 포함되어 있는 반복문만 빠져나감

public class BreakMain02 {
	public static void main(String[] args) {
		for(int i =0;i<3;i++) {
			for(int j=0;j<5;j++) {
				if(j == 3)
					break;
				System.out.println("i= "+ i + ", j =" + j);
			}
		}	
	}
}


break 레이블명;

break lable;은  break;와 같지만 다중 반복문에서 한번에 바깥쪽 반복문을 탈출할 때  많이 쓰이는 제어문

레이블 선언할 때 ; 가 아니라 : 으로 끝마친다.

break lable문

exit_for: 

break 레이블 지정할 떄 ; 아니라 :으로 끝마친다.

break exit_for; 

다중 반복문일 때 전체 반복문을 빠져나가는 것이 아니라 break가 포함되어 있는 반복문만 빠져나감

public class BreakMain03 {
	public static void main(String[] args) {
		exit_for: //break 레이블 지정할 때 ;아니라 :으로 끝마친다.
		for(int i =0;i<3;i++) {
			for(int j=0;j<5;j++) {
				if(j == 3)
					break exit_for; 
				System.out.println("i= "+ i + ", j =" + j);
			}
		}	
	}
}

 


continue; (반복계속)

(자기 자신을 감싸고 있는)가장 가까운 반복문에서 반복문을 탈출하기위해 사용되는 것이 아니라

continue문 이하의 수행문들을 포기하고 다음 회차의 반복을 수행하기위한 제어문

continue문

특정 조건일 때 수행문의 실행을 멈추고 다음 반복 회차로 건너뜀

public class ContinueMain {
	public static void main(String[] args) {
		for(int i =0;i<=10;i++) {
			if(i%3!=0) {//3의 배수
				continue;
			}
			System.out.println(i);
		}
	}
}