강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

dorothy246님의 프로필 이미지
dorothy246

작성한 질문수

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

자바 초보의 질문입니다

작성

·

116

0

자바_질문.png.webp

if문 관련 질문입니다.

조건에 따라 dollar <0 일 경우 "잘못된 코드입니다

dollar == 0 일 경우 "환전할 금액이 없습니다

dollar >0 일 경우 dollar = dollar*1300을 출력하고 싶습니다

그런데 위와 같이 코드를 작성하였을 때 dollar가 0 이하가 될 경우 if (dollar<0)문과 else문이 함께 실행됩니다.

왜 이러는 걸까요? 저는 if 문이 실행되면 else문은 실행이 되지 않는다고 이해했는데 혹시 다른 이유가 있는 걸까요?

답을 알고 계시는 분은 상세하게 설명 부탁드립니다ㅠㅠ

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

dorothy246님이 겪고 계신 문제는 Java의 if-else 구조에 대한 이해와 관련이 있을 것 같습니다. if-else 문은 기본적으로 다음과 같은 형태로 동작합니다:

if (조건1) {
    // 조건1이 true일 때 실행되는 코드
} else if (조건2) {
    // 조건1이 false이고 조건2가 true일 때 실행되는 코드
} else {
    // 위의 모든 조건이 false일 때 실행되는 코드
}

문제점: if (dollar < 0) 조건이 참일 때 해당 블록이 실행되어야 하고, 그렇지 않은 경우 다른 조건들을 순차적으로 검사하게 됩니다. 하지만 질문에서 도달한 상황에서는, 검사를 위해 작성한 코드가 dollar의 값이나 이와 관련한 로직 변경을 야기했을 가능성이 있어 보입니다.

이 문제의 원인을 좀 더 깊이 이해하려면 다음 사항을 검토하는 게 중요합니다:

  1. 코드 구조: else는 앞서 명시된 if 조건이 모두 false일 경우에만 실행됩니다. 따라서 else 블록이 실행되었다면, 이전의 모든 if 조건은 만족하지 않았어야 합니다.

  2. 변수 변경: 어딘가에서 dollar의 값이 변경되어 else 블록의 조건에 영향을 미쳤을 가능성이 있습니다. 코드 작성 중 dollar에 연산을 하거나 논리적 오류로 인한 부적절한 변경이 생겼는지 확인해야 합니다.

  3. 실수 탐지: 코드 작성 중 잘못된 assignment(할당)나 연산이 있을 수도 있습니다. 예를 들어, dollar 값이 의도하지 않게 바뀌는 곳은 없는지 검토가 필요합니다.

질문에 올려주신 이미지 링크를 확인하고 코드를 보다 구체적으로 분석해 볼 수 있으면 보다 정확한 답변을 드릴 수 있습니다. 하지만 일반적인 답변으로는 이러한 점을 점검하고, 변수 상태를 디버깅을 통해 확인해보는 것도 방법일 것입니다.

다른 분들의 예시 답변이나 논의 내용이 도움이 될 것 같아요. 유사한 주제를 다루는 추가 질문과 답변 링크를 확인해 보시면 도움이 될 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

dorothy246님의 프로필 이미지
dorothy246

작성한 질문수

질문하기