2013-09-30 2 views
0

정수 매개 변수를 사용하는 메소드 pickUpNBeepersCheckIfAll()은 가장 최근에 생성 된 로봇이 현재 위치에서 호출기 스택의 수만큼 비퍼를 수신하도록합니다. 로봇이이를 안전하게 수행하기에 충분한 비퍼가 스택에 있다고 가정 할 수 있습니다. 로봇이 현재 위치에서 모든 신호음을 받으면 메서드는 true를 반환하고, 신호음이 계속 울리면 false를 반환해야합니다.Java 이동 로봇

내 방법 : 여기

boolean pickUpNBeepersCheckIfAll(int beeper) { 
    int counter=0; 
     while(beeper>counter) { 
      pickUpItemWithRobot(); 
      counter++; 
      beeper--; 
      if(beeper==0) return true; 
     } 
    return false; 
    } 

내 코드입니다, 내가 네 가지 결과가 있기 때문에, 실수를 찾을 수 없습니다 : 임의 비퍼 (모든)를 픽업 한 신호음을 선택, 선택 최대 10 개의 신호음을 울리고 신호음을 울리지 않습니다. 그래서 여기에 2 개의 실수가 있습니다.

+9

무엇이 문제입니까? – iamnotmaynard

+2

당신은'beeper'를 감소시키고 같은 반복에서'counter '를 증가시켜야합니까? idk 그냥 괜찮은 것 같지 않습니다 – chancea

+1

당신이 묻는 것을 정말로 이해하지는 못하지만 "카운터"변수가 존재해서는 안된다는 것이 문제입니다. 루프 상태는'while (beeper> 0)' – bengoesboom

답변

0

내가 어디에서 실패했는지 생각합니다.

기본적으로 신호음 울타리 더미는 다른입니다. 당신은 그것들을 똑같은 것으로 취급하고 있습니다.

왜 당신은 카운터가 있는지 혼란 스럽습니다. 얼마나 많은 신호음을 들었는지 알 필요가 없습니다. 당신은 항상 당신이 들어오는 번호와 같은 번호를 집어들 것입니다. 당신이 걱정하는 유일한 것은 당신이 가지고있는 신호기가 있는지 없는지입니다. 그들 모두를 집어 들었다.

내가 무엇을 할 것이라고 beeperStack이 특정 스택의 내부에있는 삐삐의 수를 포함하는 글로벌 미리 정의 된 변수가

boolean pickUpNBeepersCheckIfAll(int beeper) { 
    for(int x = 0; x < beeper; x++) 
     pickUpItemWithRobot(); 
     beeperStack--; 
    } 
    if(beeperStack > 0) 
    { 
     return false; 
    } 
    return true; 
    } 

(코드와 문제에 따라).

편집 : "작동하지 않습니다!"보다 많은 정보가 필요하다는 것을 명심하십시오. pickupItemWithRobot()이 무엇을하는지 아는 것이 무엇보다도 도움이 될 것입니다.