java - 如何使用可变整数重复方法?
问题描述
一个月前,我刚开始学习如何用 Java 编程。我试图让我的机器人(卡雷尔)发出蜂鸣器的次数仅是“放置”整数中指示的次数,而不是对象的总次数。但是,它不是一个设定的数字,并且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);
}
}
}
}
解决方案
如果我的问题是正确的,那么您正在尝试putBeeper
put
时间,这是通过以下代码完成的:
while (karel.onABeeper() && put > 0) {
karel.putBeeper(put);
}
我在这里看到的问题是您没有将put
after 调用的值更改为putBeeper
,因此此while
循环将永远不会终止:例如,如果 的值put
在5
第一次循环迭代期间,它将始终保持5
,大于0
. 此外,正如您所提到的,putBeeper
它不接受任何参数,因此尝试put
作为参数传递是行不通的——编译器会为您捕获该错误。
如果您的意图是调用putBeeper
put
时间,那么您可以做的是put
在每次调用putBeeper
-put
最终达到之后递减0
,此时您已经putBeeper
准确地调用了put
时间。由于您刚刚学习 Java 编程,我将把实际的实现留给您作为练习。祝你好运!
推荐阅读
- swift - 使用 ARKit 将画廊中的图像放在墙上
- html - IE11 中的 SVG 蒙版比例和缩放
- python-2.7 - 打开要追加的文件
- c++ - 这个 declval 的定义基于什么 C++ 规则?
- google-chrome - yum 如何从不存在的基本 URL 下载软件包?
- javascript - Knockout.JS 点击绑定将 null 传递给处理函数
- c# - 使用linq c#检查列表中的条件,除了最后一个条目
- aws-lambda - Alexa 没有回应
- javascript - 未处理的拒绝 (TypeError):无法读取未定义 Stripe Javascript 的属性“id”
- c# - 如何在 C# 中以毫秒为单位获得两个日期之间的时间差?