我一个月前才开始学习如何用Java编程。我正在尝试让我的机器人(karel)将蜂鸣器放入" put“整数中指示的次数,而不是对象的总数量。但是,它不是一个设置的数字,并且karel.putBeeper(put);不会被编译器接受,因为该类没有应用于给定的类型。任何帮助都是非常感谢的,我开始理解为什么Stack Overflow是程序员最好的朋友了。注意:我可能不会回复任何有用的提示,直到明天。
import java.io.*;
import java.util.*;
public class Lab09 {
public static void main(String[]args) {
Scanner input = new Scanner(System.in);
System.out.println("Which world?");
String filename = input.nextLine();
World.readWorld(filename);
World.setSize(10,10);
World.setSpeed(6);
Robot karel = new Robot(1,1,World.EAST,0);
int pick=0;
int put=0;
for(int i=0; i<8; i++) {
while(karel.onABeeper()) {
karel.pickBeeper();
pick++;
karel.move();
}
for(i=0; pick>i; pick--) {
put++;
}
if(!karel.onABeeper()) {
karel.move();
}
while(karel.onABeeper() && put>0) {
karel.putBeeper(put);
}
}
}
}发布于 2020-10-30 10:43:07
如果我没记错的话,您正在尝试putBeeper put时间,这是通过以下代码完成的:
while (karel.onABeeper() && put > 0) {
karel.putBeeper(put);
}我在这里看到的问题是,在调用putBeeper之后,您没有更改put的值,因此这个while循环永远不会终止:例如,如果put的值在第一次循环迭代期间为5,它将始终保持为5,该值大于0。此外,正如您所提到的,putBeeper不接受任何参数,因此尝试将put作为参数传递是行不通的-编译器会为您捕获该错误。
如果您的意图是调用putBeeper put时间,那么您可以在每次调用putBeeper后递减put - put最终将到达0,此时您已经调用了putBeeper put时间。由于您刚刚开始学习使用Java编程,因此我将把实际实现留给您作为练习。祝好运!
https://stackoverflow.com/questions/64601919
复制相似问题