我試圖做卡雷爾機器人分配1(midPointFindingKarel),因爲我是新來的Java我不明白爲什麼我的代碼不完全讀取方法movingWest
。就我的邏輯而言,它應該(在完成'movingEast'方法完成之後)。由於我是初學者,我確信我錯過了一些重要的東西。有人能幫我解答一下,這樣我就能理解這個邏輯。我已經開始考慮在Java編程方法(CS106A)課程可在斯坦福大學網站
import stanford.karel.*;
public class MidpointFindingKarel1 extends SuperKarel {
public void run() {
puttingBeepers();
while(beepersPresent()) {
movingEast();
movingWest();
}
}
private void puttingBeepers() {
while(frontIsClear()) {
if (noBeepersPresent()) {
putBeeper();
}
move();
}
putBeeper();
}
private void movingEast() {
cornerBeepersPickUp();
while(beepersPresent()) {
if(frontIsClear()) {
move();
}
}
}
private void movingWest() {
cornerBeepersPickUp();
}
private void cornerBeepersPickUp() {
turnAround();
pickBeeper();
move();
}
}
我猜你是停留在'movingEast' while循環,這意味着'beepersPresent'總是返回真正。你可以驗證任何方式嗎? – 7thFox
這正是發生的事情'beepersPresent'總是如此,所以它不會去下一行。這是一個無限循環。非常感謝您的回答。 – mvgCode
那麼,如果你不介意接受它,如果你認爲它有幫助,那麼我會做出回答。 (你甚至會得到一個小的代表獎金)。很高興能幫上忙。 – 7thFox