我正在使用while循环,它应该在它应该时终止.如果它正常工作,那么当randno它是== highbound或时它会终止== lowbound.
循环代码:
do {
do {
randno = (int) (Math.round((Math.random()*(4)) + 0.5)-1);
direction = getDirection(randno,heading);
} while (robot.look(direction)==IRobot.WALL);
System.out.println(randno);
System.out.println(highbound);
System.out.println(lowbound);
System.out.println("---------------");
} while (randno!=lowbound | randno!=highbound);
Run Code Online (Sandbox Code Playgroud)
输出是3 3 2 ------,或者2 3 2 ------,因此循环应该结束.第一个循环正确结束(我嵌入它们试图让它工作......).出了什么问题?
randno!=lowbound | randno!=highbound总是如此,因为randno不能等于两者lowbound和highbound(假设它们不相等).
因此循环永远不会终止.
如果您希望在randno不同于两个边界时终止,请将您的条件更改为:
while (randno==lowbound || randno==highbound)
Run Code Online (Sandbox Code Playgroud)
如果您希望randno在与其中一个边界相同时终止,请将您的条件更改为:
while (randno!=lowbound && randno!=highbound)
Run Code Online (Sandbox Code Playgroud)
编辑:根据您的问题,您想要第二个选项.
| 归档时间: |
|
| 查看次数: |
330 次 |
| 最近记录: |