Java공부(코딩)

코딩초보의 Java공부 2일차 (조건문)

동곤일상 2024. 12. 7. 17:21
반응형

오늘도 어김없이 저만의 공부 시작하겠습니다.

오늘은 조건문에 대해서 공부해보겠습니다.

(참고 : 인프런(주) 김영한 강의)

 

1) 조건문

조건문에는 if 문과 switch문이 있다.

먼저 if문 부터 알아보도록 해볼게요.

1-1) if문

if문은 특정조건이 참이면 그 문장을 실행하는 조건문으로써

if(조건문){ "참이면 실행" } 의 형식으로 사용 됨. 

else{"모두거짓이면 실행"}  

간단한 예제를 만들어볼게요 ...

저희 지갑사정을 생각해서 밥값이 1만원이 넘으면 사지 않는 문장이에요.

최대한 이해하기 쉽게 if-else문만을 사용해봤어요.

만원이하를 입력받으면 조건문이 참이므로   if문에 "맛점하세여"가 출력이 됨.

 

만원이상(초과)를 입력하면. 조건문이  거짓이므로 else문의 " 낭비를 줄입시다. "  출력이 되는 예제.

 

if문의 단점 :

1) 불필요하게 모든 조건문을 돌아야함

2) 코드의 효율성이 떨어짐 (여러개의 if문을 작성하면 중복체크의 가능성)

 


1-2) else if문

else if문은 앞선 if문의 조건이 거짓일 때 실행된다  (if문 여러개 쓰는것보다 효율적)

if문이 참이면 실행 X

다음 예제를 통해 쉽게 알아봅시다.

가진 돈을 입력받아 먹을것을 추천해주는 if문과 else-if문의 결합
1500<2500 이므로 if문실행

 

2500<4300<5000 이므로 1번쨰 else-if문 실행
500< 8000< 9000 이므로 2번쨰 else_if문 실행

 

9000< 13000 이므로 마지막else_if문 실행

 

주의 : 하지만 이 else_if문을 아무데나 사용하는것은 아니다

if 문과 그 다음 else if문이 서로영향이 없다면 이 조건문은 잘못된것이다

서로 독립적인 경우는 둘다 if문을 사용하도록 하자 

 

 

지금까지 배운것을 활용해 예제를 하나 만들어볼게요

예제내용은  무인마트시스템인데  10살미만 아동을 데려온경우

5000원이상 10000원이하 구매시 500원 할인

10000원이상 구매시 1000원 할인

 

나이에 상관없이 10000원이상 구매한 고객은 1000원 할인

(10살 미만 아동이 만원이상 구매한다면 2000원 할인을 받는것)

나이혜택과 가격을 묶기 위해 이중if문을 사용하였음 (if문 안에 if문)

 

10살미만 + 만원이상 구매 : 1000원할인 그냥 만원이상구매시 1000원할인 이므로. 총 2000원 할인을 받게 됨

 

10살이상이므로 나이혜택은 x. 만원이상구매 -> 1000원 할인의 혜택을 받게 됨

 


2)switch 문

switch 문은 if문을 좀 더 간결하게 쓰는 방법 중 하나이다.

단순히 값이 같은지만 비교할 수 있다. 

switch(value){

case 1: "value가 1이면 실행" 

break;

case 2 :"valule가 2면 실행"

break;

default: "어느조건에도 해당하지 않으면 실행"} 이런식으로 실행됨

 

뭐든지 코드로 보는게 이해하기 편해요 코드한번 짜볼게요

한번씩 따라서 쳐보면서 익숙해지는게 중요해요

2 입력 -->  case 2 : coupon=2000 적용
case엔 있지않은 4 입력시 default문의 "회원가입하세요" 실행 되며 쿠폰 미발행

매 case마다 break를 작성 하는 일은 매우 귀찮은 일이다

(작성 안할 시  중단하지 않고 다음case로 넘어가기 때문에 문제발생)


자바14부터 이와같은 번거로움을 없애줄 새로운 switch문 작성방법이 나옴

 


2-3) 삼항 연산자

(조건) ? _표현식 : 거짓_표현식

삼항 연산자는 항이 3개라는 뜻이다. `조건` , `_표현식` , `거짓_표현식` 이렇게 항이 3개이다.

자바에서 유일하게 항이 3개인 연산자여서 삼항 연산자라 한다.

긴말하지않고 코드로 표현해보겠습니다.

String status = 19살이하면 미성년자 , 아니면 성인

 

조건문을 마무리하는 느낌으로 예제하나만 만들어보고 끝내볼게요 ~ 

운송수단을 추천하는 조건문을 만들어 볼게요 . (답 보기전에 여러분들도 직접 해보세요 '답은 하나가 아닙니다')

목적지 까지의 거리를 입력받아 

3km 이하이면 도보 , 10km이하이면 자전거 , 100km이하이면 지하철 , 100km 초과이면 고속버스를 출력하게 해보세요.

int 함수 (distance)하나만 이용해서 만들어보세요 조건문은 여러분 마음대로 해보세요..!

저는 이렇게 만들어봤어요 else_if문 3개를 더 사용했어요 switch문도 사용하려면 할 수는 있을 것 같습니다!!
10키로초과 100키로미만의 값 15를 넣었더니 지하철 이라고. 알맞게 출력이 되는것을 확인 !

 

간단한 조건문 예제 하나만 더 만들어볼게요 !

숫자(정수)를 입력받으면 그것이 소수인지 아닌지 

판단해주는 프로그램을 한번 만들어보세요

( 이건 for문도 들어가서 어렵지만

if문도 필요해서 예제로 선정했어요)

 

소수를 모르는 분들도 있을것 같아 설명하면

소수 :  1과 자기 자신만을 약수로 가지는 수(1은 소수가아님)

1은 소수가 아니여야하므로 for문을 1부터 자기자신의 숫자 전 까지 돌아가게 설정했어요. 1 이상의 수로 나누었을 때 나머지가 존재하지않는다면(약수라면) count를 +1 증가시켰습니다. 소수는 약수가 오직 1만 있어야한다(count==1) if 문으로 count가 1인것은 소수입니다 출력,, 그게아니라면 소수가 아니라고 출력.

 

이것은 조금 어려우셨을 수도있는데 다음에 반복문에 대해서 한번 다뤄보도록하겠습니다

2일차 공부는 여기까지입니다!! 도움 받아가세요