if문 - 부정연산자
1529
작성한 질문수 2
안녕하세요.
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
그렇습니다. 조건식이 false 이거나 사용된 boolean 변수의 값이 false 라면, 그 앞에 느낌표 (부정연산자) 를 붙이면 false 의 반대인 true 가 되므로 조건문 내의 명령문이 실행됩니다 😊 아래 예시를 몇 가지 적어봤는데 결과적으로 모든 if 문 내의 문장들이 실행됩니다. 살펴보시면 도움될거에요 💪
boolean isHot = false;
if (!isHot) {
System.out.println("덥지 않아요");
}
boolean isDark = false;
if (!isDark) {
System.out.println("어둡지 않아요");
}
int num = 3;
if (!(num < 1)) {
System.out.println(num + "은 1보다 작지 않아요");
}
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)이해에 도움되길 바라겠습니다 😊
감사합니다.
자바를 처음 배울 때 이런 고민이 드는 게 정상일까요?
1
146
2
static이 뭐였는지 기억이 안나요 ㅜㅜ
0
119
2
Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의
0
72
1
사고력 키우는 법이 어떤게 있나요?
0
94
2
getter setter
0
103
2
섹션9. 66 메소드 오버로딩 시 질문이 있습니다.
0
80
1
안녕하세요 갑자기 프로그램 에러가 떠서 안되네요
0
76
2
변수 이름짓는법
0
114
2
intelli J 실행오류
0
115
2
혹시 이건 수학적 사고가 부족한 걸까요?
0
152
2
영상이 재생이 안됩니다.
0
167
3
이중 반복문 (후반전) 오른쪽으로 치우친 별 쌓기에 질문이 있습니다.
0
117
2
응용이 어렵습니다.
0
206
2
IntelliJ가 보이지 않습니다.
0
187
3
JDK 버전 문의
0
130
2
BlackBox 파일 내에서 메소드 정의
0
136
1
동기화
0
123
2
Iterator 문의
0
105
1
코드 순서 문의
0
143
1
클래스 메소드
0
150
2
Quiz_05 관련 질문드립니다 !
0
118
2
다운로드가 안됩니다
0
165
2
다형성
0
120
2
HashMap
0
80
2





