공부방/JAVA

제어문 - 백기선 자바라이브스터디

EVO. 2023. 8. 6. 14:46

조건문


if문

간단한 의사 결정 문입니다. 명령문 또는 명령문 블록의 실행 여부를 결정하는 데 사용됩니다. 주어진 조건이 참이면 명령문 블록이 실행되고 그렇지 않으면 명령문 블록을 건너 뜁니다. 조건을 실행하는 동안 조건이 참이면 해당 명령문이 실행되고 나머지 코드는 건너 뜁니다. 어떤 조건도 참이 아니면 마지막 else 문이 실행됩니다.

 

if(condition)
{
   // If condition is true then this block of statements will be executed
}
else if(condition)
{
   // If condition is true then this block of statements will be executed
}
else 
{
   // If none of condition is true, then this block of statements will be executed
}

condition: 조건식은 일반적으로 비교연산자와 논리연산자로 구성됩니다. 

 

스타일

if(조건식)
{
	...
}

if(조건식){
	...
}

{ 의 위치는 각 스타일마다 장단점이 있으므로 본인의 취향에 맞는 것으로 선택해서 사용하면 됩니다.

두번째 스타일은 라인의 수가 짧아진다는 장점이 , 첫번째 스타일은 블럭의 시작과 끝을 찾기 쉽다는 장점이 있습니다. 

 

그리고 블럭내에 문장이 하나뿐인 경우 생략이 가능하지만 가능하면 생략하지 않고 사용하는 것이 바람직합니다 

 

 

switch 문


if문은 조건식의 결과가 참,거짓 두가지 밖에 없기 때문에 경우의 수가 많아질수록 else-if를 계속 추가해야하므로 조건식이 많아져서 복잡해지고, 여러 개의 조건식을 계산해야하므로 처리시간도 많이 걸립니다. 

 

이러한 if문과 달리 switch문은 단 하나의 조건식으로 많은 경우의 수를 처리할 수 있고 표현도 간결하여 알아보기 쉽습니다. 

 

출처: https://mgyo.tistory.com/239

switch문의 제약조건

  • switch문의 조건식은 결과값이 반드시 정수이어야 한다
  • case문 값 역시 정수이어야 하며 중복되지 않아야 한다
  • case문 값은 반드시 상수여야 한다 
  • 변수,실수,문자열은 case문 값으로 사용할 수 없다 
  • JDK 1.7부터는 case문에 문자열도 사용할 수 있다 
  • final이 붙은 정수상수는 case문의 값으로 사용가능(단 변수나 실수 리터럴은 불가능)
public static void main(String[] args){
	final int ONE = 1;
    int result;
    switch(result){
    	case ONE:
        ...
     }
  • case문에 문자가 들어가도 아스키코드상 정수이므로 사용가능
  • switch 문 표현식은 byte, short, int, long, enum 유형, String 및 Byte, Short, Int 및 Long과 같은 일부 래퍼 유형일 수 있습니다.(단, switch 표현식에서만 wrapper 허용하고, case 에는 wrapper 를 허용하지 않는다.)
  • switch 조건문에 변수 또는 표현식을 넣을 수 있습니다  (float은  개의 부동 소수점 숫자를 비교하는 것은 x와 y의 십진수 등가가 합리적인 정밀도로 동일하게 보일 때 정확하지 않을 수 있어 허용하지 않습니다.) 

반복문


자바의 반복문은 조건이 거짓이 될때까지 블록을 반복적으로 실행합니다. 

for문

반복된 횟수가 고정된 경우 사용하거나, index 위치나 값이 필요한 경우 사용합니다

예시

  for (int loopCount = 0; loopCount <= 100; loopCount++) {
        total += loopCount;
  }

향상된 for문 (for each)

  • JDK 1.5 부터 배열과 컬렉션에 저장된 요소에 접근할 때 기존보다 편리한 방법으로 처리할 수 있도록 for문의 새로운 문법이 추가되었다
for(타입 변수명 : 배열 또는 컬렉션){
	//반복할 문장
}

위의 문장에서 타입은 배열 또는 컬렉션의 요소의 타입이어야 하며 배열 또는 컬렉션에 저장된 값이 매 반복마다 하나씩 순서대로 읽혀서 변수에 저장됩니다. 

 

기존 for문

 for(int i = 0; i < arr.length; i++){
 	System.out.println(arr[i]);
 }

for-each 문

for(int tmp : arr){
	System.out.println(tmp);
}

while 문


루프 상태 조건이 거짓이 될때까지 허용코드가 반복하여 실행됩니다. 반복횟수가 고정되지 않은 경우 while루프를 사용하는 것이 좋습니다.

https://www.geeksforgeeks.org/cpp-while-loop/

 

do-while문


while 루프와 유사합니다. 루프 본문을 실행 한 후에 조건을 확인하는 차이점이 있습니다. 따라서 조건에 관계 없이 적어도 한번 이상 반복문을 돈다는 특징을 가집니다.

https://www.geeksforgeeks.org/cpp-do-while-loop/

출처


자바의 정석(남궁성 저)

https://kils-log-of-develop.tistory.com/349

 

제어문

목표 자바가 제공하는 제어문을 학습하세요. 학습할 것 선택문 반복문 제어문 제어문: 코드의 실행 흐름(순서)를 제어하는 구문 ( cf. 순차문 : 코드가 작성된 순서대로 실행되는 구문) 조건문 if

kils-log-of-develop.tistory.com