inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

나도코딩의 자바 기본편 - 풀코스 (20시간)

If (후반전)

선생님 (!morning) 부분 질문이 있습니다!

241

온리유빵재료

작성한 질문수 10

0

 boolean morningCoffee= false

if(!morningCoffee){

sout(아이스아메리카노 +!)

}

sout(주문완료)

 

논리부정연산자로

!morningCoffee == true 가 되는데

morningCoffee가 false가 맞을때 라고 이해해도 될까요?

헷갈려서 질문남깁니다~!

java

답변 1

1

나도코딩

안녕하세요?

boolean 변수의 이름을 제가 다르게 했더라면 조금 더 쉽게 이해를 하셨을 것 같은데 제 불찰입니다 😅 morningCoffee 대신 모닝 커피를 마셨다는 의미로 hadMorningCoffee 로 변수를 바꿔서 설명 드릴게요.

boolean hadMorningCoffee= false;
if (!hadMorningCoffee){
    System.out.println("아이스 아메리카노 +1");
}

그럼 위 코드와 같이 hadMorningCoffee 는 false 이므로 모닝 커피를 마시지 않은 상태이며, if ( 조건 ) 문에서 ( 조건 ) 에 해당하는 부분이 참일 때 괄호 속의 명령문이 수행이 되겠지요.

그리고 이 조건은 다음의 순서로 이해하시면 되겠습니다.

  1. ( ! hadMorningCoffee ) // 모닝 커피를 마신 것이 아니다

  2. ( ! false ) // false 가 아니다

  3. ( true ) // true 이다

그러므로 조건은 이 되어 if 문 내부가 실행되는 것입니다.

말씀하신 것처럼 morningCoffee 가 false 가 아니라면 <= 처럼 생각하셔도 옳습니다. 하지만 이렇게 하면 다소 헷갈릴 수 있으므로 hadMorningCoffee 로 변수명을 바꿔서 이해해주시고, 이렇게 하게 되면 !hadMorningCoffee 는 코드 그대로 모닝 커피를 마신 것(=hadMorningCoffee)이 아니다(!) 로 쉽게 풀이가 될 것 같아요.

if (hadMorningCoffee) { ... } // 모닝 커피를 마셨다
if (!hadMorningCoffee) { ... } // 모닝 커피를 마시지 않았다

궁금증 해결에 도움이 되길 바라겠습니다 😊
감사합니다.

0

온리유빵재료

선생님 불찰이라뇨 아닙니다 ㅠㅠ
설명 감사합니다 이해됐습니다!!

자바를 처음 배울 때 이런 고민이 드는 게 정상일까요?

1

145

2

static이 뭐였는지 기억이 안나요 ㅜㅜ

0

118

2

Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의

0

70

1

사고력 키우는 법이 어떤게 있나요?

0

93

2

getter setter

0

101

2

섹션9. 66 메소드 오버로딩 시 질문이 있습니다.

0

79

1

안녕하세요 갑자기 프로그램 에러가 떠서 안되네요

0

75

2

변수 이름짓는법

0

114

2

intelli J 실행오류

0

115

2

혹시 이건 수학적 사고가 부족한 걸까요?

0

152

2

영상이 재생이 안됩니다.

0

167

3

이중 반복문 (후반전) 오른쪽으로 치우친 별 쌓기에 질문이 있습니다.

0

116

2

응용이 어렵습니다.

0

206

2

IntelliJ가 보이지 않습니다.

0

185

3

JDK 버전 문의

0

128

2

BlackBox 파일 내에서 메소드 정의

0

136

1

동기화

0

120

2

Iterator 문의

0

104

1

코드 순서 문의

0

141

1

클래스 메소드

0

149

2

Quiz_05 관련 질문드립니다 !

0

118

2

다운로드가 안됩니다

0

165

2

다형성

0

120

2

HashMap

0

80

2