작성
·
116
0
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
의 값이나 이와 관련한 로직 변경을 야기했을 가능성이 있어 보입니다.
이 문제의 원인을 좀 더 깊이 이해하려면 다음 사항을 검토하는 게 중요합니다:
코드 구조: else
는 앞서 명시된 if
조건이 모두 false
일 경우에만 실행됩니다. 따라서 else
블록이 실행되었다면, 이전의 모든 if
조건은 만족하지 않았어야 합니다.
변수 변경: 어딘가에서 dollar
의 값이 변경되어 else
블록의 조건에 영향을 미쳤을 가능성이 있습니다. 코드 작성 중 dollar
에 연산을 하거나 논리적 오류로 인한 부적절한 변경이 생겼는지 확인해야 합니다.
실수 탐지: 코드 작성 중 잘못된 assignment(할당)나 연산이 있을 수도 있습니다. 예를 들어, dollar
값이 의도하지 않게 바뀌는 곳은 없는지 검토가 필요합니다.
질문에 올려주신 이미지 링크를 확인하고 코드를 보다 구체적으로 분석해 볼 수 있으면 보다 정확한 답변을 드릴 수 있습니다. 하지만 일반적인 답변으로는 이러한 점을 점검하고, 변수 상태를 디버깅을 통해 확인해보는 것도 방법일 것입니다.
다른 분들의 예시 답변이나 논의 내용이 도움이 될 것 같아요. 유사한 주제를 다루는 추가 질문과 답변 링크를 확인해 보시면 도움이 될 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.