我有以下代码在java应用程序屏幕中围绕框的周边移动图标,首先向上移动屏幕19次,然后向右转,直到它返回到原始出发位置之前的步骤 -
public class MyClass {
public static void moveNTimes(MyObject main, int numberOfMoves) {
for(int i = 0; i < numberOfMoves; i++) {
main.move();
}
}
public static void main(String[] args) {
MyObject main = new MyObject();
for (int i = 19; i >=0; i--){
moveNTimes(main, i);
main.turnRight();
i = i + 1;
}
}
}
我的问题是,当它到达盒子周边的末端时,我需要它转到下一行,这将有18个位置在下一个周边移动,然后是17等,直到图标完成屏幕的中心。
有没有办法对代码应用计数,以便知道何时提取原始数字集之一?我设法做到这一点,只需用每次手动设置的整数重复代码。现在,一旦完成第一个边界,图标就会停止。
答案 0 :(得分:1)
以下内容如何:
for(int run=0 ; run<19 ; run++) {
for(int lc1=0 ; lc1<19-run ; lc1++)
main.move();
main.turnRight();
}
答案 1 :(得分:1)
您可以创建一个将移动次数作为参数的方法:
public void moveNTimes(YourObject main, int numberOfMoves) {
for(int i = 0; i < numberOfMoves; i++) {
main.move();
}
}
并根据需要多次调用该方法,而无需复制代码:
for (int i = 19; i >=0; i--) {
moveNTimes(main, i);
}
OR
您可以在主对象中添加moveNTimes(int numberOfMoves)
方法。
注意:
i = i + 1
可以写成i++
修改强>
您的描述不是很清楚,但这可能是您要求的:
for (int i = 19; i >= 2; i--){
for (int j = 0; j < 3; j++) {
moveNTimes(main, i);
main.turnRight();
}
}
这将向上移动19次,然后向上移动19次,向下移动19次,向左移动18次,向上移动18次,向右移动18次,向下移动17次等等,并且应该在框的中间完成(最后可能需要额外的移动) ,不确定)。