본문 바로가기
Java

Java_조건문( if문과 switch문 )

by 유서담 2023. 10. 26.

if문

 

  • if문은 제어문을 작성할 때 사용한다.
  • if문을 사용하면 특정한 수행문을 실행되게 하거나 실행되지 않게 할 수 있다.
  • if문에는 수행문의 실행여부를 결정지을 조건식이 필요하다.
  • if문의 조건식은 수행결과가 boolean값인 연산식이어야 한다.

 

if문

 

제시된 조건을 만족하는 경우에만 수행문이 실행되어야 하는 경우 사용한다.

if (조건식) {
	// 조건식이 true로 판정되면 블록내의 수행문이 실행된다.	
}

 

if ~ else문

 

제시된 조건을 만족하는 경우와 만족하지 않는 경우 각각 실행할 수행문이 존재하는 경우 사용한다.

if (조건식) {
	// 조건식이 true로 판정되면 블록내의 수행문이 실행된다.
} else {
	// 조건식이 false로 판정되면 블록내의 수행문이 실행된다.
}

 

if ~ else if ~ else문

 

  • 수행문의 실행여부를 결정하는 조건이 여러 개인 경우 사용한다.
  • 제시된 조건식 중에서 true로 판정된 경우가 존재하면 해당 블록의 수행문이 실행되고, 나머지 조건식은 검사하지 않는다.
  • 제시된 조건식 전부 true로 판정되는 경우가 존재하지 않을 때만 else 블록의 수행문이 실행된다.
  • else 블록은 생략할 수 있다.
  • else 블록은 여러 개 작성할 수 없다.
if (조건식1) {
	// 조건식1이 true로 판정되면 블록내의 수행문이 실행된다.
} else if (조건식2) {
	// 조건식2가 true로 판정되면 블록내의 수행문이 실행된다.
} else if (조건식3) {
	// 조건식3이 true로 판정되면 블록내의 수행문이 실행된다.
} else {
	// 위에서 제시한 조건식1, 조건식2, 조건식3이 전부 false로 판정되면 블록내의 수행문이 실행된다.
}

 

 

if ~ else if ~ else문 코드예제

 

2번째 사진처럼 if문 안에서 연산하지 않고 구매금액대에 맞는 적립값을 변수 depositRate에 넣어 마지막에 포인트 변수에 저장하는 방법도 있다. 2번째 사진의 코드가 더 가독성 좋고, 반복되는 코드가 없음을 알 수 있다

 

 

내포된 if문

 

  • if문은 다른 if문을 포함할 수 있다.
  • if, else if, else 모두 다른 if문을 포함할 수 있다.
if (조건식1) {
	// 조건식1이 true로 판정되면 블록내의 수행문이 실행된다.
	if (조건식2) {
		// 조건식1이 true로 판정되고, 조건식2도 true로 판정되면 블록내의 수행문이 실행된다.
	} else {
		// 조건식1이 true로 판정되고, 조건식2는 false로 판정되면 블록내의 수행문이 실행된다.
	}
}

 

if (조건식1) {
	// 조건식1이 true로 판정되면 블록내의 수행문이 실행된다.
} else {
	// 조건식1이 false로 판정되면 블록내의 수행문이 실행된다.
	if (조건식2) {
		// 조건식1이 false로 판정되고, 조건식2가 true로 판정되면 블록내의 수행문이 실행된다.
	}
}

 

내포된 if문에 대한 예시코드 및 출력결과

 

내포된 if문을 통해서 평균점수를 나타내는 변수 avg값에 따라 합격 여부와 장학금 지급대상 여부를 확인하는 코드이다.

else~if문을 사용했다면 "합격입니다" 또는 "장학금 지급대상입니다" 만 출력이 될 것이다. 그러나

내포된 if문을 사용하면 첫 if 조건식에서 참이더라도 다른 if문을 만나 그 조건식 또한 만족해야 두번째 if문에 대한 수행문을 처리할 수 있다.

 

 

 

앞에 있던 코드와는 조금 반대되는 개념이다

똑같이 합격여부와 장학금 지금여부를 따지는 코드이지만 과목중 하나라도 40점을 넘지 못하면 불합격이 출력이 되어야 한다

 

boolean 타입의 변수 subjectFail을 만들어서 false로 초기화를 하고 각 과목별로 40점인 조건을 만족시키지 못하면 true로 값이 들어가며 true면 if(!subjectFail) 문이 수행하지 못하고 각 if에 해당하는 출력문구가 나오며 if문이 종료됐을 것이다.

 

if(!subjectFail)문은 위에 코드와 같으니 따로 설명하지 않겠다

 

 

위와 같은데 return문으로 if문을 빠져나온다

 

위와 같은 코드인데 boolean 타입의 변수인 subjectFail을 따로 생성하지 않고 return문을 사용한 코드이다.

변수 생성 및 초기화를 하지 않고 오히려 return을 사용하는게 개인적으로 가독성이 더 좋게 느껴진다

 

retrun문

 

메소드의 실행을 즉시 중단시킨다.

 

return문을 활용했을 때 이러한 이점을 얻을 수 있다

  • 프로그램의 구조를 단순하게 작성할 수 있다
  • 코드의 가독성을 향상시킬 수 있다.
  • 불필요한 검사가 실행되지 않게 한다

 

 

 

switch

 

  • switch문은 단 하나의 조건식으로 많은 경우의 수를 처리할 수 있다.
  • 처리할 경우의 수가 많은 경우 if문 보다 switch문을 사용하는 것이 유리하다
  • switch문은 if와 달리 값에 대한 범위 비교가 불가능하다.
  • switch문은 범주형 데이터의 값을 비교할 때 활용된다. 

범주형 데이터의 예 : 성별(남/여), 고객등급(골드/실버/브론즈), 주문상태(결재완료/상품준비중/배달중/배달완료)

 

 

 

switch문의 형식

 

switch (조건식) {
  case 값1 :
    조건식의 연산결과가 값1과 일치하는 경우 실행될 수행문;
    break;
  case 값2 :
    조건식의 연산결과가 값2과 일치하는 경우 실행될 수행문;
    break;
  case 값3 :
    조건식의 연산결과가 값2과 일치하는 경우 실행될 수행문;
    break;
  default :
    조건식의 연산결과와 일치하는 case문이 없을 때 실행될 수행문
}

 

switch문의 제약조건

 

  • 조건식의 결과는 반드시 정수 또는 문자열이어야 한다.
  • case문의 값은 정수, 문자, 문자열만 가능하며, 중복되지 않아야 한다.
  • case문에 break가 없으면 일치하는 case문과 그 다음에 정의된 모든 case문 및 default문이 실행된다
  • default문은 생략 가능하다.

 

switch 예제코드 및 출력결과

 

'Java' 카테고리의 다른 글

Java_배열 [ Array ]  (0) 2023.10.27
Java_반복문(for문, while문)  (0) 2023.10.27
Java_타입의 형변환  (0) 2023.10.24
Java_변수와 자료형  (0) 2023.10.24
Java 및 Java 설치방법  (0) 2023.10.23