2016-07-06 1 views
-7
public static String getLeastPriceToy(Toy one, Toy two, Toy three, Toy four, 
     String category) { 
    Toy ansToy = one; 
    if(!one.getCategory().equals(category)&& !two.getCategory().equals(category)&& 
     !three.getCategory().equals(category)&&!four.getCategory().equals(category)){ 
     System.out.println("no category found"); 
    } 
    else{ 
    if(two.getCategory().equals(category) && (two.getPrice()*two.getDiscount())<(ansToy.getPrice()*ansToy.getDiscount())){ 
     ansToy =two; 
    } 
    if(three.getCategory().equals(category) && (three.getPrice()*three.getDiscount())<(ansToy.getPrice()*ansToy.getDiscount())){ 
     ansToy =three; 

    } 
    if(four.getCategory().equals(category) && (four.getPrice()*four.getDiscount())<(ansToy.getPrice()*ansToy.getDiscount())){ 
     ansToy =four; 
    } 
    } 
return ansToy.getName(); 

"범주가 없습니다"만 반환하지만 첫 번째 문자열 인 바나나가 반환됩니다. 나는이를 제거 할 수있는 방법 : 당신이 return "no category found";System.out.println("no category found");를 교체 할 경우특정 범주가 없으면 "no category found"만 인쇄하십시오.

enter image description here

+4

'이미지는 게시물에는 유용하지만 게시물이 없으면 여전히 깨끗한 지 확인하십시오. 코드 또는 오류 메시지의 이미지를 게시하는 경우 실제 코드 또는 메시지를 복사하여 직접 게시물에 붙여 넣으십시오. "스크린 샷을 기반으로하는 것은 우리 모두에게 어렵고 중요한 정보를 남기지 않습니다. 게시물을 업데이트하여 코드를 포함시키고 질문 내용을 명확하게 설명해야합니다. – Obicere

+0

'main()'메소드를 포함하십시오. – shmosel

답변

2

당신이 getLeastPriceToy()의 결과를 인쇄하고 가정, 단지

return "no category found"; 
1

System.out.println("no category found"); 

을 대체 당신은해야 원하는 행동을 취하십시오. 은 지금 당신이 "바나나"를 인쇄 이후 당신 항상하는 당신은 당신이 그것을 인쇄 한

를 찾을 수 없습니다 "라는 범주를"반환되지 않습니다 코드에 좋은 곳이 없다 return ansToy.getName();

0

.... System.out에 .println (

을 "어떤 카테고리를 찾을 수 없습니다"하지만 실제로 줄을 추가해야합니다

리턴() "찾을 수 없습니다 범주를";

말했다되고 있음을, 그것이 migh 문자열 대신 null과 같은 것을 반환하는 것이 더 유용 할 것입니다.

짧은 대답은 이미 여기에 주어졌다
0

: 또한 return "no category found";

System.out.println("no category found"); 교체,이 코드는 재 설계로 완화 될 수있는 여러 문제가 있습니다

  • 는 하나 메소드를 호출하기를 , 두 개 또는 세 개의 매개 변수를 사용하면 항상 존재할 수없는 카테고리가있는 "FakeToy"를 만들어야합니다 (메서드가 null을 검사하지 않으므로 null 매개 변수 중 하나를 NullPointerException으로 바꿉니다)
  • 너를위한 방법이 없어. 다섯 가지 장난감을 비교해 보라.

이 버전은 사용자의 요구 사항을 처리하고 이러한 제한이 없습니다 :

public static String getLeastPriceToy(Set<Toy> toys, String category) { 
    Toy result = null; 
    for(Toy toy: toys) { 
    if(result == null || (toy.getCategory().equals(category) && toy.getPrice() * toy.getDiscount() < result.getPrice() * result.getDiscount())) { 
    result = toy; 
    } 

    if(result == null) { 
    return "no category found"; 
    } 

    return result.getName(); 
} 

이 나중에 어떤 코드 수정없이 장난감의 임의의 수와 함께 작동 원래 버전보다 짧은 것입니다. 일치 다른 방법을 호출하면 내가 범주와 일치하는지 여부를 확인 주요 방법 에서

0

여부를 이

이 논리가 나를 도왔다 "어떤 카테고리를 찾을 수 없습니다"...! 타이 모든 내 질문에 대한 답변.

관련 문제