Java/자바의 정석

[자바의 정석] 4장. 조건문과 반복문

remnantcjy 2023. 1. 9. 00:43

- 조건문은 if문과 switch문로 2가지가 있으며 주로 if문이 사용

  처리할 경우의 수가 많을 때는 if문보다 switch문이 효율적이지만,

  switch문은 if문보다 제약이 많다.

 

- 자바에서 조건식의 결과는 반드시 true 또는 false

- 만일 결과가 참인 조건식이 하나도 없으면, 마지막에 있는 else 블럭의 문장들이 수행된다.

  그리고 else 블럭은 생략이 가능하다. else 블럭이 생략되었을 때는 if-else if문의 어떤 블럭도 수행되지 않을 수 o.

- if-else if문이 여러 개의 if문을 합쳐놓은 것이긴 하지만, 그렇다고 해서 조건식을 바꾸지 않고

  여러 개의 if문으로 쪼개놓기만 하면 전혀 다른 코다가 된다는 점에 유의하자.

 

- if문은 조건식의 결과가 참과 거짓 2가지 뿐이라 경우의 수가 많을 수록 else-if문을 추가해야 하기에 복잡하다.

  여러 개의 조건식을 계산해야 하므로 처리시간이 늘어난다.

  switch문은 단 하나의 조건식으로 많은 경우의 수 처리 가능

 (switch문에서는 조건식을 잘 만들어서 case문의 갯수를 줄이는 것이 중요)

 

- 처리할 경우의 수가 많을 수록 if보다 switch

  But, 제약 조건 o ---> 경우의 수가 많을 땐 어쩔 수 없음. if문으로 작성해야 할 땐 o

 

- default문 = if문의 else 블럭과 같은 역할

  그래서 break; 없음 (마지막으로 작성하기에)

 

- switch문에서 break문은 각 case문의 영역을 구분하는 역할

- switch문의 제약조건

  1. switch문의 조건식 결과는 정수 또는 문자열이어야 o

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

 

- Math.random()

  난수를 얻기 위해서 사용, 이 메서드는 0.0과 1.0사이의 범위에 속하는 하나의 double 값을 반환

  0.0 <= Math.random() < 1.0

 

- 문자열에 저장된 문자는 '문자열.charAt(index)'로 가져올 수 o, index는 연속된 정수값으로 0부터 시작

 

- for문이나 while문에 속한 문장은 조건에 따라 한 번도 수행되지 않을 수 있지만

  do-while문에 속한 문장은 무조건 최소한 한 번은 수행될 것이 보장된다.

  for문은 주로 반복횟수를 알고 있을 때 사용한다.

 

- 향상된 for문은 일반적인 for문과 달리 배열이나 컬렉션에 저장된 요소들을 읽어오는 용도로만 사용할 수 있다는 제약 o

- 만일 초기화나 증감식이 필요하지 않는 경우라면, while문이 더 적합하다.

- for문과 달리 while문의 조건식은 생략 불가, while 무한반복 원하면 조건식에 true 또는 for(;;)

  무한반복은 반드시 블럭 { } 안에 조건을 넣어서 특정을 조건을 만족하면 무한 반복문을 벗어나도록 해야 한다.

 

- 어떤 수를 10으로 나머지 연산하면 마지막 자리를 얻을 수 o

  그리고 10으로 나누면 마지막 한 자리가 제거됨

- do-while문은 끝에 ;(세미콜론) 필수

  최소한 한 번 수행됨, 그리 많이 쓰이진 않지만, 반복적으로 사용자의 입력을 받아서 처리할 때 유용 o

- continue문은 반복문 내에서만 사용될 수 있으며, 반복문 전체를 벗어나지 않고 

  다음 반복을 계속 수행한다는 점이 break문과 다르다. 주로 if문과 함께 사용되어 특정 조건을 만족하는 경우에

  continue문 이후의 문장들을 수행하지 않고 다음 반복으로 넘어가서 계속 진행하도록 한다.