如何在主方法//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;
}