我正在尝试创建一个名为“ runExperiments()
的方法循环的第一步是将一个名为“ powerLevel”的变量减1到3之间的一个随机数,这是我创建了第二种有效的方法。
我遇到问题的下一步是如果可以降低“ powerLevel”,那么我需要显示一条包含实验编号(从1开始)的消息,否则请显示一条不同的消息。显示,并且不应尝试其余实验。
然后,当所有实验结束时,我需要显示“实验运行已停止”,但是我知道如何执行此部分。
我已在下面发布了所有代码。该方法在底部。我已经进行了首次尝试,但似乎无法弄清粗体部分。任何帮助或指导都是很棒的。我不确定自己是否使用了正确的循环类型,因此也可能是错误的。
public class SpaceRocket
{
private String name;
private int maxPowerLevel;
private int numberOfExperiments;
private int powerLevel;
private int decreasePowerLevel;
/**
* returns maxPowerLevel
*/
public int getMaxPowerLevel()
{
return this.maxPowerLevel;
}
/**
* returns numberOfExperiments
*/
public int getNumberofExperiments()
{
return this.numberOfExperiments;
}
/**
* returns powerLevel
*/
public int getPowerLevel()
{
return this.powerLevel;
}
/**
*
* Causes execution to pause by time number of milliseconds
*
*/
public void delay(int time)
{
try
{
Thread.sleep(time);
}
catch (Exception e)
{
System.out.println(e);
}
}
/**
*
* return a random integer between 1 and 3 inclusive
*/
public int randomInteger()
{
java.util.Random r = new java.util.Random();
return r.nextInt(3) + 1;
}
public SpaceRocket(String aName, int aNumberOfExperiments)
{
this.name = aName;
this.numberOfExperiments = aNumberOfExperiments;
this.powerLevel = 0;
this.maxPowerLevel = 15;
}
public boolean decrementPower(int adecreasePowerLevel)
{
this.decreasePowerLevel = adecreasePowerLevel;
if(decreasePowerLevel > this.powerLevel)
{
this.powerLevel = 0;
return true;
}
else
{
this.powerLevel =(this.powerLevel - this.decreasePowerLevel);
return false;
}
}
public runExperiments()
{
for(this.powerLevel =(this.powerLevel - randomIntegar())
{
if(this.powerLevel
}
}
答案 0 :(得分:-1)
如果我正确理解了您的问题,那么每次循环运行时,您都希望将“功率水平”降低一个随机值,然后根据是否可以降低功率水平来显示一条消息。
这是两种方法。
1)在for循环中使用if语句
for (conditions){
if(powerlevel cannot be decremented){
//display a messsage
break;
}
// display a message
}
条件可能会在所有实验中反复出现
2)使用while循环检查是否可以在每个循环中降低功率水平
while(powerlevel can be decreased){
//display a message containing the experiment number (starting at 1)
}
//display a different message