Java

다중if문, switch-case문,

빵아지 2023. 2. 13. 23:33

다중 if문

if (조건식1) {
System.out.println("실행문장1");
} else if(조건식2) {
System.out.println("실행문장2");
} else if(조건식3) {
System.out.println("실행문장3");
} else {
System.out.println("실행문장4");

else if뒤에는 조건이 꼭 붙어야 함
else if는 조건식 최대 2개




<문제>




<풀이>


내가 이 문제에서 0입니다가 계속 안 떴음 왜냐하면? if문은 위에서 아래로 흐르니깐!!!
if 뒤에 0이니? -> True면 실행문장1 실행시킴/ 0이 아니에요-> else if조건으로 내려감
0이 if뒤에 바로 안 나오고 if문에 짝수인지부터 확인을 하면 0이 있는 조건까지 안 내려가고 컴퓨터가 값을 짝수라고 판단해버림!!!




switch-case문

- 정보처리기사에도 나오는 문제
- 출현 용어: switch, case, break, default
- break가 필수임!!!

원리

- 식과 case뒤 값은 값이 떨어져야함
- default 뒤에도 : 나옴
- break를 걸지 않으면 위에가 참이라고 생각하면 밑에도 다 실행시켜버림
- default는 다중 if문에서 else와 비슷함!




<문제>**** 내가 똥멍청이인가... 생각한 문제다 견뎌

90점 이상일 경우에서는 10의자리가 9라는 공통점이 있네??? 9를 뽑아 와야겠다! 를 생각하기
-> 숫자를 10으로 나누면 ? 몫이 9가 나오네?
단, 점수는 0점부터 100점까지 있다는 사실 기억하기


<풀이>

변하는 값 : 점수, 학점 ---> 변수명으로 활용
학점에 대해서 변수선언 했는데 'A' 는 문자 하나여서 char 등장시킴(char은 ' ' 사용)
switch->case->break->...->default 순서

switch 뒤에 값이 명확하게 떨어지는 식이 나와야 함
case 뒤에도 명확한 값이 나와야 함

- 100점 , 90점 ~ 100점 : A학점 영역임
- break는 실행문장 끝날 때마다 등장 시켜줘야함
- default값이 나오면 else같은 얘구나?
- 맨 밑줄 출력문을 적으려면 switch 중괄호 안에 포함되면 절-대 안 됨!!!!
(이거 때문에 머리 아팠음... 원인을 못 찾아서 ㅠㅠㅠ)
왜냐? if문이랑 달리 중괄호를 안 닫고 계속 이어서, 컴퓨터가 그 문장 또한 계속 실행시키려고 함



<문제>*****머리 터지는 줄 알았다




<풀이>

- > 변하는 값이 무엇인지 파악해라 : 금액 , 메뉴, 잔돈
이 세 변수를 선언해야겠군??? ( 이 사고를 해야 내가 문제 풀기 편하다)

if(조건식){ 윗줄에 int change = 0; 을 선언해라!
실행문장에 하나하나 출력문 작성하기엔 귀찮 + 복잡해지니깐

- 만약 내가 1번 메뉴를 고르면? ---->(금액 - 1번에 대한 값)
2번 ? ---->(금액 - 2번에 대한 값)
3번 ? ---->(금액 - 3번에 대한 값)

마지막에 잔돈 계산해주자





<윗 문제를 응용하기>**** 포인트 놓쳐서 문제 틀렸음;

-> 입력한 금액이 선택한 메뉴의 가격보다 부족하면 "돈이 부족해요 ㅠㅠ"문장을 출력하세요
-> 안 부족하면 윗 문제대로 답이 출력되어야 함



<정답>






<문제>



<풀이>
난 이걸로 풀었음
<잔돈공식은 그냥 외워버리기>

풀이 1

ex) 3500 나누기 1000 하면 몫이 3 (천원의 갯수)
'' 1000으로 나눈 나머지(500원)를 500으로 나누면 (1개) (오백원의 갯수)
'' 1000으로 나눈 나머지(500원)를 500으로 나눈 나머지(1)를 100으로 나누기(0) (백원의 갯수)

풀이 2




<무단 도용 금지합니다. 스마트인재원에서 만든 자료입니다>