if else 命令 无法有效执行 找不到原因 请指教
请问下面程序中的if else 为什么没有执行呢
程序代码:import stanford.karel.*;
public class StoneMasonKarel extends SuperKarel {
public void run() {
turnLeft();
turnrightAnd4Steps();
putdownAndMove();
moveOnly();
}
/*Turn right and move 4 steps while the front is blocked*/
private void turnrightAnd4Steps() {
if (frontIsBlocked()) {
turnRight();
for (int i=0; i<4; i++){
move();
}
turnRight();
} else {
putdownAndMove();
moveOnly();
}
}
/*Put beeper and move while there is no beeper*/
private void putdownAndMove() {
while (noBeepersPresent()) {
putBeeper();
move();
}
}
/*Just move while there is a beeper*/
private void moveOnly() {
while (beepersPresent()) {
move();
}
}
}类似这样的情况在设计其他情景时也出现 if else 没有执行, 是否有可能是软件中没有能执行这个命令的功能? 初学菜鸟请教各位大师

[此贴子已经被作者于2016-2-12 22:37编辑过]







1,是否是子级设计中并联的模式导致出现了某些命令优先执行,比如"移动"优先于"转向".
尝试1:修改子级的三个"private void"为串联模式,但是系统提示错误,每个"private void"只能单独设计说明单个项目,也就是"private void"里不能再包含另一个下级"private void".也就是说每个"private void"都是独立的,但是"private void"里还是可以包含执行另外一个"private void"的项目.只是很遗憾,通过设计一个执行转命令的"private void"包含另一个执行移动命令的"private void"[设想是希望这样能形成命令等级,使转向命令优先于移动命令],还是没有能使Karel转向.
难道在Karel的Java世界中"移动"优先于"转向"吗?


