작성
·
1.1K
0
안녕하세요.
If문 부정연산자 관련하여 문의 드립니다.
아래 식에서 !(부정연산자)가 추가되어 false -> true 로 되는 것까지 이해하였습니다.
그럼 if (hour < 14 && morningCoffee == true) 라는 식이 성립되는데
if (hour < 14 && morningCoffee == false) 이 식과 어떻게 동일한지 이해가 되지 않습니다..
hour = 10;
boolean morningCoffee = false;
if (hour < 14 && !morningCoffee)
sout("아이스 아메리카노 +1")
답변 2
0
자세한 답변 감사합니다!!
그럼 1) false 로 선언된 변수에 부정연산자를 사용한 식은
모두 true 로 되어 조건문이 실행되는 걸까요?
제시해 주신 사례처럼 변수가 하나만 있다고 가정했을 때에요!
0
안녕하세요?
논리 부정 연산자 ! 를 붙이면 bool 값의 반대가 됩니다. 그래서 true 는 false 로, false 는 true 로 되는 것이죠.
아래 문장에서 hour 부분은 제외하고 morningCoffee 만 남겨둬볼게요.
// 기존 코드
if (hour < 14 && morningCoffee == false)
// 수정 코드
if (morningCoffee == false)
그러면 위 조건문은 다음과 같이 동작하게 될 겁니다.
1) morningCoffee 가 true 이면?
if (true == false) => if 조건이 거짓이므로 조건문 실행 X
2) morningCoffee 가 false 이면?
if (false == false) => if 조건이 참이므로 조건문 실행 O
이번에는 논리 부정 연산자가 적용된 문장을 볼까요?
역시나 hour 부분은 제외해볼게요.
// 기존 코드
if (hour < 14 && !morningCoffee)
// 수정 코드
if (!morningCoffee)
그러면 위 조건문은 다음과 같이 동작하게 될 겁니다.
1) morningCoffee 가 true 이면?
if (!true) => if (false) 와 동일하므로 조건문 실행 X (if 조건이 거짓이므로)
2) morningCoffee 가 false 이면?
if (!false) => if (true) 와 동일하므로 조건문 실행 O (if 조건이 참이므로)
결과적으로 아래 두 조건문은 동일한 목적으로 사용될 수 있습니다.
if (morningCoffee == false)
if (!morningCoffee)
이해에 도움되길 바라겠습니다 😊
감사합니다.
그렇습니다. 조건식이 false 이거나 사용된 boolean 변수의 값이 false 라면, 그 앞에 느낌표 (부정연산자) 를 붙이면 false 의 반대인 true 가 되므로 조건문 내의 명령문이 실행됩니다 😊 아래 예시를 몇 가지 적어봤는데 결과적으로 모든 if 문 내의 문장들이 실행됩니다. 살펴보시면 도움될거에요 💪