[JAVA] 조건문과 반복문

보람·2023년 1월 25일
0

JAVA

목록 보기
5/24
post-thumbnail

1. 조건문 - 어떤 조건이 부합할 때만 코드를 실행시켜준다.

(1) 조건문이란?

  • 무조건 실행되는 것이 아니라, 특정 조건을 충족할 경우에만 실행됨

(2) 조건문의 종류

  • if 문 : 주어진 '조건'이 참(true)일 경우에만 실행
  • if ~ else 문 : 주어진 '조건'이 참(true)일 경우 if문이 실행, 그렇지 않을 경우 else 문이 실행
  • if ~ else if ~ else 문 : 조건을 여러개로 세분화하여 사용
  • switch 문 : 하나의 '값'에 대하여 여러가지 경우의 수로 나누어 분기 처리한다.

(3) if 문 ( 만약에 )

  • if문은 주어진 조건이 참일 경우, 지정된 구문이 실행
  • 조건에 따라서 보여지는 화면을 달리하고 싶을 때 많이 사용함( 사용자창 || 관리자창 )
  • if문의 조건식 ( true / false 감별할 수 있어야 함)
    -> 비교식 (비교 연산자 사용)
    -> 논리식 (논리 연산자 사용)
    -> boolean 값
	if( 조건 ) {
		조건이 '참'이면 실행할 구문 <- 한 줄이면 괄호 안 넣는 경우도 있음
	}

(4) if ~ else

  • else = 그렇지 않으면
  • if문은 조건이 참일 경우에 실행되는 구문, 반대면 else
  • else문은 독립적으로 사용 x , 반드시 if문 뒤에
	if ( 조건 ) {
		true일 때, 실행할 구문 ...
	} else {
		false일 때,실행할 구문 ...
	}

(5) if ~ else if ~ else

  • if문과 else문 사이에 else if문으로 두 번째 조건, 세 번째 조건을 나열할 수 있다.
  • else if 문은 필요한 만큼 나열할 수 있으며, else문은 필요 없으면 생략가능.
	if ( 조건 ) {
		true일 때, 실행할 구문 ...
	} else if ( 조건 ) {
		... 실행할 구문...
	} else if ( 조건 ) {
		... 실행할 구문...                  // else if의 갯수는 상관없음, 
	} else {
		false일 때,실행할 구문 ...
	}
  • boolean 타입은 그 자체가 true/false값을 갖고 있기 때문에 변수 그 자체로 넣어줘도 됨
		boolean is_korean = true

		if ( is_korean ) {
			System.out.println("한국사람 입니다~"); } 

		// "!"는 값을 부정한다. 참을 부정하므로 false.
		if ( !is_korean ) {
			System.out.println("한국사람 아닙니다~!@#$"); }
            

(6) switch : 잘 사용 x

  • 변수 값에 대한 경우의 수를 처리

  • switch문은 하나의 변수(기준값)에 대한 여러가지 case를 정의하는 구문

  • if문은 조건에 식(비교식. 부등식)이 사용될 수 있지만 switch문은 조건이 반드시 일치하는 "값"에 대해서만 처리 가능.

    			switch( 해당되는 기준값 ) {
    				case1 :
    					true일 때, 실행될 구문
    				break;     // 빠져나
    				case2 :
    					true일 때, 실행될 구문
    				break;     
    				case3 :
    					true일 때, 실행될 구문
    				break;     
    				default;  //생략가능
    					.. 모든 경우에 충족되지 않을 경우 실행..
    				break;

(7) 예제

  • if문으로 최대값 구하기
		int a = 5;
		int b = 20;
		int c = 10;
		int max = 0; 
        
        if ( a > b && a > c ) {
			max = a;
		} else {  // a가 제일 크지 않을 때 -> b, c 비교 
			if (b > c) {
				max = b;
			} else {
				max = c;
			}
		}
		
		System.out.println("최대값은 " + max);  ㅣㅣ 최대값은 b
  • 짝수 / 홀수 구하기

    		int a = 256;
    		
    			if ( a % 2 == 0 ) {
    				System.out.println("짝수");
    			} else {
    				System.out.println("홀수");
    			}
  • switch문 예시

    int number = 3;
    		
    			switch( number ) {
    				case 3 : 
    					System.out.println("안녕");
    				case 2 :
    					System.out.println("안녕");
    				case 1 :
    					System.out.println("안녕");
    				break;
    				default : 
    					System.out.println("문제 7. 잘가");
    				break;
    			}

2. 반복문

  • for문
  • while문
  • do-while => 잘 안쓰임

(1) for문

  • 사람이 직접 처리하기에 부담스러운 반복적인 작업을 처리하기에 용이
  • 1부터 100까지 더하는 거 같은 반복적인 작업 (직접하기에 부담스러운 일)
  	for( 초기실 ; 조건식 ; 증감식 ) {
		반복적으로 동작할 구문
	}
- 초기식 : 최초로 초기식을 설정한다.
- 조건식 : 초기식을 설정한 다음에는 조건식을 판단한다.
- 만약 조건식이 참이라면 반복적으로 동작할 구문을 1회 수행한다.
- 반복 구문을 수행한 후, 증감식으로 이동한다.
- 증감식을 수행한 후, 다시 조건식으로 이동한다. 여전히 조건식이 참이라면 반복수행을 처리하고, 
- 그렇지 않다면 for문을 종료한다.

(2) while문 (= for문이랑 거의 비슷, 편한 거 골라서 하기)

  • 반복적인 처리를 수행
  • 조건식(언제 빠져나올지 나타냄)만 내장, 초기식과 증감식을 외부에서 정의하기 (초기식, 증감식이 필요 없는 경우)
 		초기식;

		while(  조건식  ) {
			...반복적으로 동작할 구문...

			증감식;
		}

(3) do~while문

  • 조건의 판별을 나중에 수행하는 반복문 형태
  • 초기식을 설정한 후 do{...} 안의 문장을 우선적으로 1회 실행하고 조건을 판별하므로,
    조건이 참이 아니더라도 최소 1회는 실행된다.
		초기식;

		do{
			..반복적으로 동작할 구문 ..
			증감식;
		}while( 조건식 );

✔✔ for문, while문, do~while문 비교예시

  • 구구단 7단
    • for문
      int gugudan7 = 0;
      for (int i = 1; i <= 9; i++) {
      		gugudan7 = 7 * i;
             System.out.println(gugudan7);
      }
    • while문
      int result = 0;
      int i = 1;
      	while ( i <= 9 ) {
      		//i++; //여기에 오면 2부터 시작해
      		result = i * 7;
      		// i++; // =>1
      		System.out.println(result);
      		i++; // =>2 1,2의 위치에 따라 값이 달라질 수도 있음 위치 중요 
      	}
      	System.out.println(result);
    • do ~ while문
      int result = 0;
      int i = 1;
      	
      	do {
      		result = i * 7;
      		System.out.println(result);
      		i++;
      		
      	}while( i <= 9 );
  • while / do~while 비교
    		int max = 85 ;
    		
    			while( max > 100 ) {
    				System.out.println("while문 실행");
    			}
    		
    			do {
    				System.out.println("do~while문 실행");
    			}while( max > 100 ); // 값 : "do~while문 실행" why? while문의 경우 조건식 안맞으면 실행 x, do~while은 실행하고-> 조건 안맞으면 멈춤

(4) 무한 루프

  • 증감식이 설정되지 않거나, 증감식이 수행되더라도 조건식이 거짓이 되지 않는 형태
  • 조건식이 항상 참이므로, 반복문이 종료되지 않는다.
  • 프로그램이 PC의 자원을 매우 많이 사용하게 되므로, 시스템 다운을 발생시킬 수 있다.
  • for문의 무한 루프 예
	for( int i = 0; i<=100; i--) {
		System.out.println(i);     //i의 값이 무한히 마이너스됨으로써 무한루프에 빠짐
	}

  - while문 무한 루프 예

	while( true ) {
		System.out.println("hello");
	}

(5) 반복문에서의 break와 continue

  • break : 반복을 강제로 종료
  • continue : 코드가 더 진행되지 않고 증감식으로 강제이동
    즉, continue -> 코드 중지 -> 증감식 -> 조건식 -> 코드 진행
profile
안녕하세요, 한보람입니다.

0개의 댓글