我对Java很新,并试图建立一个小型火箭计划。
我有3种不同的方法可以在调用图形显示时改变火箭排气喷嘴的大小和颜色,这些方法可以单独使用。
public void pulse1()
{
jet.setDiameter(6);
jet.setColour(OUColour.RED);
jet.setXPos(58);
}
public void pulse2()
{
jet.setDiameter(12);
jet.setColour(OUColour.ORANGE);
jet.setXPos(55);
}
public void pulse3()
{
jet.setDiameter(24);
jet.setColour(OUColour.RED);
jet.setXPos(48);
}
然而,我要做的是编写另一种方法ignition()
,它使用某种循环来按照时间顺序调用三种脉冲方法中的每一种,最多5次,每次之间有500毫秒的延迟呼叫。 (想法是在图形显示上模拟火箭发动机的起火)
到目前为止,我已经尝试了以下但没有成功。
public void ignition()
{
pulse1();
delay(500); // uses the inbuilt delay method
pulse2();
delay(500);
pulse3();
}
答案 0 :(得分:0)
在Java中,循环将执行代码块的内容。代码块是两个大括号之间的任何东西。
{
statement1;
statement2;
} // statement2 and statement2 are both inside the code block
因此,当您声明一个循环(可能带有for
或while
)时,循环将作用于下一个代码块。你可以在循环块中每次调用一次延迟函数,每次循环都会等待一次。
使用for
循环实现所述内容的方法可能就是这样
public void ignition() {
for(int i = 0; i < 5; i++) {
pulse1();
delay(500); // uses the inbuilt delay method
pulse2();
delay(500);
pulse3();
delay(500);
}
编辑:误解了OP想要循环的内容
答案 1 :(得分:0)
由于您不确定循环中应遍历多少次但最大限制为5,因此请使用随机数。发生器。
int i = rand.nextInt(5) + 1; //1 is minimum and 5 is maximum
int a=0;
while(a<i){
pulse1();
delay(500); // uses the inbuilt delay method
pulse2();
delay(500);
pulse3();
a++;
}
如果您的延迟方法给您带来问题,您也可以使用Thread.sleep(500)。