[Java] 조건문 / if문 / if~else문 / 중첩if문

2021. 1. 14. 20:16Dev.Program/Java & Spring

728x90

======== Ex.java 만들기

p.114

< 조건문 >

  • 특정 조건에 따라 문장의 실행 여부를 결정하는 문

< if문 >

  • 조건식에 따라 특정 문장 실행 여부를 결정하는 기본적인 조건문
  • 조건식 판별 결과가 true 이면 블록({})문 내의 문장들을 실행하고 조건식 판별 결과가 false 이면 블록문을 생략함

< 기본 문법 >

문장1;

if(조건식) {
	문장2; // 조건식 판별 결과가 true 일 때 실행할 문장들...
}

문장3;
  • 조건식 판별 결과가 true 일 때 : 문장1 → 문장2 → 문장3
  • 조건식 판별 결과가 false 일 때 : 문장1 → 문장3



======== Test.java

문제 ) 단일 if문

정수형 변수 num 에 대한 절대값 계산하여 출력

  • ex) 변수 num 이 5일 때 → "변수 num = 5"
  • ex2) 변수 num 이 -5일 때 → 음수를 양수로 절대값 변환 후 "변수 num = 5" 출력

문장1. 변수 num 선언 및 초기화

조건식 판별을 통해 변수 num 이 음수일 때 양수로 변환(절대값 계산) - 문장2

문장3. "변수 num = X" 출력

푼 답
선생님 답안 : 음수 만드는 건 앞에 -(마이너스)만 붙여주면 됨.
잘 출력되는지 보기 위해서 System.out.println("num = " + num + " 이므로 양수로 변환!"); 적어줌.
출력창

 

 

문제 ) 문자 ch 가 대문자일 때, 소문자로 변환하여 출력

푼 답
선생님 답안 : +=를 쓰면 형변환이 필요없음. 간단하쥬! 이렇게 자꾸 코드 줄여나가기!



======== Ex2.java 만들기

p.116

< if ~ else 문 >

  • 조건식 판별 결과에 따라 서로 다른 문장을 실행하는 if문

⇒ 조건식 판별 결과가 true 이면 if 문의 중괄호 블록문{} 을 실행하고 false 이면 else 문의 블록문{} 을 실행

  • 삼항연산자(조건연산자)와 동일한 형태의 조건문 ⇒ if ~ else 문이 더 상위 조건문

< 기본 문법 >

문장1;

if(조건식) {
	문장2; // 조건식 판별 결과가 true 일 때 실행할 문장들...
} else {
	문장3; // 조건식 판별 결과가 false 일 때 실행할 문장들...
}

문장4;
  • ⇒ 문장2 와 문장3 은 동시에 실행될 수 없다!조건식 판별 결과가 true 일 때 : 문장1 → 문장2 → 문장4
  • 조건식 판별 결과가 false 일 때 : 문장1 → 문장3 → 문장4



======== Test2.java

문제 ) int num = 5;

정수형 변수 num 에 대한 양수, 음수 판별(0은 양수에 포함시킴) 

정수형 변수 num 에 대한 홀수, 짝수 판별(0은 짝수에 포함시킴) 

푼 답 = 선생님 답

 

문제 ) 문자 ch 가 대문자이면 소문자로 변환, 아니면 대문자로 변환

푼 답
선생님 답안

 

======== test3.java

문제 )

정수형 변수 num 에 대한 양수, 음수, 0 판별

정수형 변수 num 에 대한 홀수, 짝수, 0 판별

푼 답 = 선생님 답안

 

문제 )

문자 ch 가 대문자일 경우 소문자로 변환, 소문자일 경우 대문자로 변환

아니면 "ch 는 영문자가 아닙니다!" 출력

ch 출력

출력창

  • 푼 답 = 선생님 답

 

문제 ) 학생 점수(score) 에 대한 학점(grade) 판별

A학점 : 90  ~ 100 점

B학점 : 80  ~ 89 점

C학점 : 70  ~ 79 점

D학점 : 60  ~ 69 점

F학점 : 0 ~ 59 점

그 외 : "점수 입력 오류!"

푼 답
선생님 답안

======== Ex4.java

p.120

< 중첩 if문 >

  • if문 블록 내에서 또 다른 if 문을 기술하는 것 (else 블록 내에서 기술해도 됨)

< 기본 문법 >

if(조건식 1) {
    // 조건식 1 이 true 일 때 실행할 문장들...
    if(조건식 1-2) {
        // 조건식 1이 true 이고, 조건식 1-2 가 true 일 때 실행할 문장들... 
    } else {
        // 조건식 1이 true 이고, 조건식 1-2 가 false 일 때 실행할 문장들...
    }
} else {

    // 조건식 1이 false 일 때 실행할 문장들...(if문 추가 가능)
}

 

if (score >= 90 && score <= 100) {
    grade = "A학점";
} else if (score >= 80) {
    grade = "B학점";
} else if (score >= 70) { // 79 이하는 자동 적용(생략 가능)
    grade = "C학점";
} else if (score >= 60) { // 69 이하는 자동 적용(생략 가능)
    grade = "D학점";
} else { // 59 이하는 자동 적용(생략 가능)
    grade = "F학점";

}
  • ⇒ 이럴 때 중첩 if 문을 사용!이렇게 하고 싶은데 100점 이상일 경우가 오류가 뜸.

  • 이런 식으로 중첩if문 사용 가능.

 

======== Test4.java

문제 )

문자 ch 에 대한 대 <-> 소문자 변환

단, ch 가 영문자가 아닐 경우 "입력 오류!" 출력

푼 답 = 선생님 답안

 

728x90