Java의 정석

4장. 조건문과 반복

simplism 2023. 2. 3. 00:49

조건문

: 조건을 만족할 때만 { } 를 실행

   if ( 조건식 ) {

        내용

     }

※ 조건식에는 true or false 가 와야함

   조건문과 반복문을 flow control statment (제어문) 이라고도함.

 

조건식 예시)

   if ( 조건식 ) {

        내용

     }

에서

 { } 생략 가능하다. 생략시, 한 행만 조건문으로 인식

 if ( 조건식 ) 

      내용1  ( if에 속한문장)

      내용3  ( if에 속한 문장 아님 )

 

 

 if ( 조건식 ) {

        조건식 참일때 실행할 내용

 } else {

        조건식 거짓일때 실행할 내용

}

 

 


else if

 

 if ( 조건식 ) {

        조건식 참일때 실행할 내용

 } else  if  (조건식2) {

        조건식2가  참일때 실행할 내용

 } else  if  (조건식3) 

            조건식3이  참일때 실행할 내용

 } else {

            조건식 거짓일때 실행할 내용

}

 

 

중첩 if문


switch문

 : 처리해야 하는 경우의 수가 많을때 유용한 조건문

 

예시)

switch ( 조건식) {

           case 값 1 : 
                                   조건식의 결과가 값1 일때 실행될 내용
                                   break;

           case 값 2 :
                                   조건식의 결과가 값1 일때 실행될 내용
                                   break;

           case 값 3 :
                                   조건식의 결과가 값1 일때 실행될 내용
                                   break;

           case 값 4 :
                                   조건식의 결과가 값1 일때 실행될 내용
                                   break;

           default(생략가능) :
                                   조건식의 결과가 case값들과 일치되는게 없을때 실행될 내용                                

}

※ 주의 :  break문이 없다면 case 1,2,3,4 그냥 다 실행함

 

 

 

switch문의 제약 조건

 1. 조건식의 결과는 정수 or 문자열 이어야한다.  (jdk 1.7 이상부터 문자열까지가능)

 2. case값은 정수, 상수, 문자열만 가능하며 중복되지 않아야한다. ( 변수 x )

 

 

case 3 의 실행내용은 없다. 
그래서 case4 , case5 까지 쭈욱 실행되며,
case 5의 봄입니다를 출력후, break문을 만나 switch문 종료case 3 의 실행내용은 없다. 
그래서 case4 , case5 까지 쭈욱 실행되며,
case 5의 봄입니다를 출력후, break문을 만나 switch문 종료

 


임의의 정수만들기 - Math.random() 

 : 0.0과 1.0 사이의 임의의 double 값을 반환

0.0 <= Math.random() < 1.0

 

 

예시)

1~ 3사이의 정수를 얻고 싶다면, 

1. 각변의 3을 곱한다. ( 내가 원하는 개별 값의 개수를 곱하는 것 )

 

2. 각변을 int형으로 변환한다.

 

 

3. 각변의 1을 더한다..

 

 

예시2)


반복문

: 조건을 만족하는 동안 { } 를 n번실행

for, while

 

for문이란?

 : 조건을 만족하는 동안 { } 블럭 내용을 반복  ( 반복회수를 알 때 적합 )

 

 

 

예시)

 

누적합계


중첩 for

 

예시 ) 구구단 출력

 

먼저 반복문 1행  만들고 다음꺼 넘어가는게 좋았음

 


break문이란?

 : 자신이 포함된 하나의 반복문을 벗어남.

 

		int sum=0, i=0;

		while(true){
			if(sum > 100){
		    	break;               // if조건이 만족되면 break;문이 실행되어 반복문을 종료시킴
			}
		    
		    i++;
		    sum += i;
		    System.out.println("i : " + i +  "  ,      sum : " + sum );
		}

 

예시)

 

 

 

continue문이란 ? 

 : 자신이 포함된 반복문의 끝으로 이동 ( 다음 반복으로 넘어감 )

 

 예시)

 

 

 

※ break문은 하나의 반복문을 벗어난다.

그런데 , 중첩 반복문을 벗어나야 할 경우는 ???

이름붙은 반복문을 활용

 : 반복문에 이름을 붙여서 하나 이상의 반복문을 벗어날 수 있다.

 

일반 break;를 사용시에는 전체 반복문을 빠져나올수 없다.
반복문에 이름을 붙여 break시 반복문 전체를 빠져나올수있다.

 

 

 


출처 : 남궁성의 정석코딩

https://www.youtube.com/@MasterNKS