如何在主方法//Java中调用布尔变量时使其变为true
我正在制作一个超级英雄类,在调用攻击方法时调用方法,但是一旦调用了方法,我如何使当前的假布尔值切换为真? 我的代码:如何在主方法//Java中调用布尔变量时使其变为true,java,Java,我正在制作一个超级英雄类,在调用攻击方法时调用方法,但是一旦调用了方法,我如何使当前的假布尔值切换为真? 我的代码: 但是,您在哪里将att设置为false,以摆脱do…while循环?据我所知,您希望在调用攻击方法时使“att”布尔值为真。然后,这将触发以下代码来计算要返回的运行状况 如果这是正确的,那么每次调用该方法时,您都希望计算运行状况以返回一次,并且只返回一次,因此不需要循环。我相信你认为你在循环的东西是 boolean var; do{ var = t
但是,您在哪里将att设置为false,以摆脱
do…while
循环?据我所知,您希望在调用攻击方法时使“att”布尔值为真。然后,这将触发以下代码来计算要返回的运行状况
如果这是正确的,那么每次调用该方法时,您都希望计算运行状况以返回一次,并且只返回一次,因此不需要循环。我相信你认为你在循环的东西是
boolean var;
do{
var = true;
// some code
var = false;
}while(var);
但是,当循环中的最后一行将循环条件(布尔值)设置为false时,它将确保循环永远不会循环回顶部并再次运行。因此,这相当于只是做:
boolean var;
var = true;
// some code
var = false;
相反,您应该做的是计算您希望调用“攻击”函数的次数,并循环多次调用它。例如,我使用了一个“main”函数来调用攻击函数,但它可以在任何地方被替换
public static void main(String args[]) throws IOException {
int numberOfTimesToAttack = 2;
for(int i = 0 ; i < numberOfTimesToAttack; i++){
attack(10.0,500.0,5.0,5.0);
}
}
试着把每个功能看作是装配线的一部分。每个人都有自己的工作,只做那份小工作,不担心别人的工作。攻击函数有一个目的,即模拟攻击。它不应该计算攻击必须执行多少次,这是一个不同的函数。
}while(att=true)代码>不再。。。即使它是一些伪代码,您也应该使用=
或跳过==true
部分(,而(att)
是非常好的,实际上它甚至是首选)。现在您正在创建无限循环,因为att
将始终重置为true
(=
是赋值,不是比较)。对不起,高中程序员。哈哈,你知道while循环是什么吗?不管你的att
boolean值是多少,上面的循环都不会循环。如上所述,您可以完全删除att
,它也会产生同样的影响。不会起作用。将att设置为false的代码必须在循环内部,否则循环将永远不会被破坏。如果是这种情况,那么您不需要do…while循环就足够了吗?您不需要它,因为您不需要循环。你不需要一段时间;您不需要任何for循环。@user3754559您知道while循环应该做什么吗?我建议您在开始编写程序之前,先学习编程入门课程或阅读入门级书籍。
boolean var;
var = true;
// some code
var = false;
public static void main(String args[]) throws IOException {
int numberOfTimesToAttack = 2;
for(int i = 0 ; i < numberOfTimesToAttack; i++){
attack(10.0,500.0,5.0,5.0);
}
}
public double attack(double AttackDam, double Health, double Stamina, double BlockChance)
{
if (BlockChance == 0.0) {
Health = Health - AttackDam;
} else {
AttackDam = AttackDam - BlockChance;
Health = Health - AttackDam % BlockChance;
Stamina = Stamina - AttackDam % BlockChance;
}
return Health;
}