Java(k)

Chapter 04. 조건문과 반복문 if, switch, for, while statement

레나19 2022. 2. 10. 21:51

제어문(control statement) - 프로그램의 흐름을 바꾸는 역할을 하는 문장

1. 조건문 - 조건에 따라 다른 문장 수행

2. 반복문 - 특정 문장을 반복해서 수행

 

1. 조건문 - if, switch

1.1 if 문

if(조건식) { // 조건식이 참(true 일 때 수행될 문장들을 적는다 }

조건식 구성요소 (비교연산자, 논리연산자)

하기 쉬운 실수 : 등가비교 연산자 == 대신 대입연산자 = 를 사용하는 경우 ,,

조건식의 결과는 반드시 true or false여야 한다. 

 

블럭{}  : 항상 해주자.

 

1.2 if-else문

if (조건식) { // 조건식이 참(true) 일 떄 수행될 문장을 적는다.

} else {  // 조건식 이외의 경우 수행될 문장을 적는다.

}

1.3 if-else if

if(조건식1) {     }

else if(조건식2) {     }

else if(조건식3) {     }

else   {     }

순차적으로 실행하고, 참인 조건식을 만나면 { } 을 수행한 뒤, if-else if 전체를 빠져나온다.

 

1.4 중첩 if문

if (조건식1) {    

     if(조건식2) { 

     else {     }

} else  {     

}  

if안에 또 if-else가 있는경우.

 

1.5 switch문

  1. 조건식을 계산한다
  2. 조건식의 결과와 일치하는 case문으로 이동한다.
  3. 이후의 문장을 수행한다.
  4. break문이나 switch문의 끝을 만나면 switch문 전체를 빠져나간다.
  5. 만약 break문을 설정하지 않으면 아래 case로 넘어가서 수행한다. break;를 만날때까지

switch문의 제약조건

1. 조건식은 정수 또는 문자열이어야 한다. switch(정수, or 문자열)

2. case문의 값은, 정수 상수만 가능하며, 중복되지 않아야 한다. case ?:

 

Tip (Math.random())

0.0 <= Math.random() < 1.0

ex) 만약 1~3 사이의 정수를 구하기를 원한다면, 다음과 같은 과정으로 난수를 구하는 식을 얻을 수 있다.

1. 각 변에 3을 곱한다.

0.0 * 3 <= Math.random() *3 < 1.0*3

0.0 <= Math.random() *3 < 3.0

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

(int) 0.0 <= (int)(Math.random())*3 < (int) 3.0

      0   <= (int)(Math.random())*3 < 3.0

3. 각 변에 1을 더한다.

0 + 1 <= (int)(Math.random()) * 3 + 1 < 3 + 1

      1 <= (int)(Math.random()) * 3 + 1 < 3 + 1

 

Tip ( 글자 N번째 빼가지고 오기)

Scanner scnr = new Scanner(System.in);

String radio = scnr.NextLine();

char channer = radio.charAt(N);

switch(channer)

case 1: case 2:

 

뭐 이런 식으로 사용할 수 있다.

 

switch문도 if문처럼 중첩으로 사용이 가능하다.

 

2. 반복문 - for, while, do-while

2.1 for문의 정리

for( 초기화 ; 조건식 ; 증감식 ) { 내용수행 }

초기화는 처음 한번만 쓰이고 조건식-> 내용수행 -> 증감식 - > 조건식의 true 판단 으로 반복이 계속 된다. 

for(int i = 1; i<=5; i++){

내용

}

이러면 초기화식이 시행되고 나머지는 조건식 -> 내용수행->증감식 

다시 조건식 -> 내용수행 -> 증감식 -> 조건식 맞나 확인 

이런 식으로 계속 반복이 된다. 조건식이 참인 동안 계속 반복이 된다. 

만약 for( ; ; ) 이렇게 다 생략이 된 경우에는 참으로 간주되어 무한반복문이 된다. 

중첩반복문으로 

for ( int i = 1; i<=5 ; i ++)

{ for(int j =1 ; j<=5; j ++){ 내용 } }

이렇게 사용하는 경우도 있고, 배열같은 경우 배열 컨트롤을 위해

for ( int i = j ; i<=count ; i++){ 내용 }

이런 식으로 해주는 경우도 있다. 그리고 배열에서 배열의 길이만큼 수행해주기 위해

int [] arr = {10,20,30,40,50};

for ( int i =0;i<arr.length; i++) 이런것처럼 length로 arr 이 가지고 있는 길이를 나타낼 수 있다.

 

2.2 while의 정리

while문은 조건식과 블럭{}만으로 이루어져있다. 

조건식이 참(true) 인 동안, 조건식이 거짓이 될 떄까지 블럭내의 문장이 반복된다. 

while문 총 정리. 

while문의 주요 포인트이다. 

1. 수행내용

2. 탈출구조

 

  • while(조건식) { 내용 수행}  조건식이  i <=0, i-- <=0, i<=0 { i -- } 이런식으로 많이들 쓰인다.
  • boolean flag;  while(flag) { if ( ){}  else flag = false;
  • do { } while(조건) 
  • while(true){ if(  ) break; } 

이런식으로 빠져나가는 조건이 항상 존재하고, 그게 boolean타입이 되었든 while문 안의 if로 표현이 되어있다.

do{ } while() ; 조건식 후에 ; 달아주는 거 잊지 말자. 

빠져나가는 거는 break; or continue가 있는데, break;는 해당 반복문을 빠져나간다. continue는 밑에는 생략하고 해당 반복문을 처음부터 다시 시작한다. 그리고 반복문에 이름을 붙여줄 수 있다. loop 1:  while () 뭐 이런 식으로

그러면 빠져나갈 떄 break loop1; 이렇게 나가도 되고 해당부분부터 시작하고 싶으면 continue loop1 ; 이걸 만나면 loop1부터 다시 시작이 된다. 

'Java(k)' 카테고리의 다른 글

Chapter 05. 배열 array  (0) 2022.02.12
Chapter 02. 변수 variable  (0) 2022.02.10
Chapter 03 Operator  (0) 2022.02.10