이동 네거티브 가격 체크
감아 제 if
블록의 체크 아웃 itemPrice < 0
. 이 오류 검사는 첫 번째 코드 경로뿐만 아니라 모든 코드 경로에 있어야합니다. 예산에서 공제하기 전에 부정적인 가격에 대한 점검에 다시 추가 할 필요에서 당신을 유지합니다.
while (budgetRemaining > 0) {
System.out.println("You have a remaining budget of $" + budgetRemaining + ". Please enter price of item:");
itemPrice = enterPrice.nextDouble();
if (itemPrice < 0) {
System.out.println("Sorry, you have entered an invalid amount. ");
continue;
}
...
}
내가 다음 <
및 ==
가지 경우를 결합 할 경우
을 결합합니다. 로직을 가능한 한 비슷하게 유지하십시오. 항상 itemPrice
을 빼십시오. 유일한 차이점은 완료되면 메시지를 인쇄한다는 것입니다. 루프 상태를 확인했기 때문에 최종 인쇄물을 루프 바깥으로 옮기고 if (itemPrice == budgetRemaining)
검사를 완전히 제거 할 수 있습니다.
while (budgetRemaining > 0) {
System.out.println("You have a remaining budget of $" + budgetRemaining + ". Please enter price of item:");
itemPrice = enterPrice.nextDouble();
if (itemPrice < 0) {
System.out.println("Sorry, you have entered an invalid amount. ");
continue;
}
if (itemPrice <= budgetRemaining) {
budgetRemaining -= itemPrice;
}
else if (itemPrice > budgetRemaining) {
System.out.println("Sorry, your item exceeds your budget.");
}
}
System.out.println("You have reached your maximum budget. Thank you for shopping with us!");
는 if
및 else if
확인 지금 바로 어느 쪽 else if
때문에 중복이, 두 번째는 간단한 else
될 수 있습니다 제거합니다.
if (itemPrice <= budgetRemaining) {
budgetRemaining -= itemPrice;
}
else {
System.out.println("Sorry, your item exceeds your budget.");
}
조기 종료, 내가 먼저 예산을 초과 확인하도록하기 위해 전환 할 것 제외
. 우리는 itemPrice < 0
점검을하고 있기 때문에, 앞의 다른 오류 조건도 점검하는 것이 좋습니다. budgetRemaining -= itemPrice
문은 지금 어떤 상태의 밖에 :
while (budgetRemaining > 0) {
System.out.println("You have a remaining budget of $" + budgetRemaining + ". Please enter price of item:");
itemPrice = enterPrice.nextDouble();
if (itemPrice < 0) {
System.out.println("Sorry, you have entered an invalid amount. ");
continue;
}
if (itemPrice > budgetRemaining) {
System.out.println("Sorry, your item exceeds your budget.");
continue;
}
budgetRemaining -= itemPrice;
}
System.out.println("You have reached your maximum budget. Thank you for shopping with us!");
continue
으로 종료 초기 오류 검사 +의이 스타일
쉽게 정규 경우이 무엇인지 볼 수 있습니다. 주요 코드 경로로 승격되었습니다. 다른 수표와 출력물은 전제 조건입니다.
또는 if
/else
체인으로 작성할 수 있습니다. 둘 중 하나가 작동합니다. 이제는 문학적 취향에 관한 것입니다.
if (itemPrice < 0) {
System.out.println("Sorry, you have entered an invalid amount. ");
}
else if (itemPrice > budgetRemaining) {
System.out.println("Sorry, your item exceeds your budget.");
}
else {
budgetRemaining -= itemPrice;
}
코드가 이미 작동 중이며 작업 코드를 검토하는 몇 쌍의 눈을 갖고 자한다면 자매 사이트 [Code Review] (https://codereview.stackexchange.com)가 이 질문. –
아이템 가격이 남은 예산보다 적거나 크지 않다고 이미 주장했기 때문에 'if (itemPrice == budgetRemaining)'를 완전히 다른 것으로 대체 할 수 있습니다. 같은. –
지금 교체되었습니다. 그리고 나중에 사용할 코드 검토를 제안 할 것이고 제안에 감사 할 것입니다. –