【Java개발】제3회 조건분기

Java입문강좌

시작하며

여러분 안녕하세요!

DreamHanks의254cm입니다.

오늘은 조건분기에 대해서 알아보도록 하겠습니다.

Java의 전체 기사는 여기를 클릭해 주세요.

이전 기사는【Java개발】제2회 연산자에 대해서 배워봤습니다.

 

조건분기

조건분기는 조건을 만족하는지에 따라 실행되는 처리를 나누는 것을 말합니다.

Java에서 제공되는 조건분기는 4가지가 있습니다.

・if문
・if/else문
・if/else if/else문
・switch문

 

if

if문은 조건식의 결과가 true인 경우,「{}」괄호의 처리가 실행됩니다.

false의 경우 아무것도 실행되지 않습니다.

샘플을 보면서 설명하겠습니다.

 

위 소스코드를 실행시켜보면

변수 a의 값은 10이고 위 if문의 조건식「a > 5」은 참입니다.

그래서 위 if문의 코드「System.out.println(“a는 5보다 큽니다.”);」

가 실행되고 “a는 5보다 큽니다.”가 출력됩니다.

 

하지만 위 if문의 경우 a의 값은 10이기 때문에 조건식「a > 11」은 거짓입니다.

그래서 위 if문의 소스코드「System.out.println(“a는 11보다 큽니다.”);
는 실행되지 않습니다.

※위의 소스에 있는 System.out.println();는 괄호안에 있는 문자를 화면에 출력시켜줍니다.

if/else

if문과 함께 사용되는 else문은 if의 조건이 false의 경우에만 실행됩니다.

샘플을 보면서 설명하겠습니다.

위 소스코드를 실행시켜 보면

변수 a의 값은 10이기 때문에 if문의 조건「a == 10」이 참입니다

그러므로 위 if/else문중에서 if문 쪽이 실행이 되고 “a는 10입니다.“가 출력됩니다.

위 소스코드의 경우 변수 a의 값은 10이고 조건식「a == 7」은 거짓입니다.

그러므로 위 if/else문중에서 else문 쪽이 실행되고,”a는 10이 아닙니다.“가 출력됩니다.

 

if/else if/else

if/else if/else는if/else문중에서 조건식을 하나 더 추가 한 것입니다.

즉, if/else문가 중첩되어있는 형태를 말합니다.

그리고 if/else if/else문을 사용하면 필요한 조건이 몇개라도 표현가능합니다.

샘플을 보면서 설명하겠습니다.

 

조건식이 2개 이상 있기 때문에 프로그램의 실행 순서에 맞춰 설명하겠습니다.

프로그램은 위에서부터 순서대로 실행되며 변수 a를 선언과 함께 초기화해서 if문의 조건식을 확인합니다.

a의 값은 10이고 if문의 조건식「a > 5」은 거짓입니다.

그러므로 다음 조건식을 확인합니다.

다음 조건식(else if)은「a < 5」이고 이것도 거짓입니다.

그리고 if문,else if의 조건도 만족하지 못했기 때문에 자동적으로 else문의 처리가 실행됩니다.

다시 한번 다른 샘플을 보면서 설명하겠습니다.

 

 

위 소스코드를 실행시켜보면

정수형의 변수 a를 선언 또는 초기화합니다.

그리고 if/else if/else를 위에서부터 순서대로 확인하며 동작됩니다.

① if( a == 1 ) a는 3이기 때문에 거짓

② else if( a == 2 ) a는 3이기 때문에 거짓

③ else if( a == 3 ) a는 3이기 때문에 참

④ else if( a == 3 ) 의 처리 System.out.println(“a의 값은 3입니다.”);를 실행합니다.

⑤ else if( a == 3 )가 실행되었기 때문에 else if( a == 3 )이하의 else if/else는 실행되지 않습니다.

 

switch

몇개의 조건이 있어도 if/eles if/else문을 나누면 표현가능합니다.

if/else if/else로 여러개의 조건을 표현하면 한 번에 보고 의미를 파악하는 것이 어렵습니다.

이런것을 대응하기 위해 Java는 switch라는 조건분기를 제공하고 있습니다.

 

 

switch문은 조건값의 결과에 따라 다른 처리를 실행시키는 조건분기입니다.

이러한 switch문은 if/else if/else문 보다 한 눈에 보기 쉽고 처리시간도 빠릅니다.

하지만 switch문의 조건값은 byte형、short형、char형、int형 또는 나중에 배울 래퍼 클래스Byte, Short, Character, Integer만 사용할 수 있습니다.

그러므로 switch문은 if/else문보다 범용성이 작습니다.

switch문은 조건식과 case의 값을 비교해서 2개의 값이 일치하는 case의 처리를 실행합니다.

default는 조건식이 어떤 case와도 일치하지 않는 경우에만 실행됩니다. if/else의else와 비슷합니다.

샘플을 보면서 설명하겠습니다.

 

 

위 소스를 실행시켜보면

변수 a가 초기화되고 switch문의 조건식을 보게 됩니다.

조건값의 값이 2이기 때문에 case 2의 처리가 실행되고

“a의 값은 2입니다”가 출력됩니다.

switch문 에서는 「break」라는 것이 있는데

다음 「반복」를 다루는 기사에서 더 자세하게 설명하겠습니다.지금은  case가 종료된 것만 이해해도 괜찮습니다.

이 break문이 없으면 실행된 case와 해당 case밑에 있는 case가 전부 실행됩니다.

샘플을 보면서 설명하겠습니다.

 

 

방금 샘플에서는 case 2의 처리가 실행되고 switch문이 종료되지만

위의 샘플은 break문이 없습니다.

그러므로 case 1이 실행된 후 종료되지 않고  case 2와 default도 실행됩니다.

즉, 「a의 값은 1입니다.」「a의 값은 2입니다.」「a의 값은 알 수 없습니다.」3개 전부가 출력됩니다.

 

끝으로

여기까지 기사를 마치겠습니다.

다음은 Java의루프에 대해서 알아보도록 하겠습니다.

감사합니다.

 

 

コメント