You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何结合布尔值使用If-Else语句?实战场景实现

Java中布尔值结合If-Else的实现方案

先修正代码基础问题

原代码里generateAbilities方法用到了damage变量但未定义,需要在私有属性区域添加:

private int damage;

实现hitAttempt方法(返回布尔值)

基于角色speed属性设计命中逻辑:生成0-100的随机数,若数值≤角色速度则判定命中(返回true),反之未命中(返回false):

public boolean hitAttempt() {
    int chance = (int)(Math.random() * 101);
    return chance <= this.speed;
}

实现hitDamage方法(计算并显示伤害)

基于角色strength属性计算伤害,用力量值乘以0.5~1的随机系数生成最终伤害,再输出结果:

public void hitDamage(){
    int damageDealt = (int)(this.strength * (Math.random() * 0.5 + 0.5));
    System.out.println(this.name + " 造成了 " + damageDealt + " 点伤害!");
}

修改fight方法,结合If-Else使用布尔值

在fight方法中调用hitAttempt获取命中结果,通过If-Else判断布尔值,决定是否执行伤害逻辑:

public void fight() {
    System.out.println(this.name + " is fighting!");
    boolean isHit = hitAttempt();
    if (isHit) {
        hitDamage();
    } else {
        System.out.println(this.name + " 攻击未命中!");
    }
}

完整修正后的代码

public class Goodman {
    
    // PRIVATE PROPERTIES
    private int strength;
    private int speed;
    private int health;
    private int damage; // 新增伤害属性
    
    // PUBLIC PROPERTIES
    public String name;
    
    // GETTERS
    public int getStrength() {
        return strength;
    }
    
    public int getSpeed(){
        return speed;
    }
    
    public int getHealth(){
        return health;
    }
    
    // CONSTRUCTORS
    public Goodman (String name) {
        this.name = name;
        generateAbilities();
    }
    
    public void showPowers() {
        System.out.println("<::::::::::::::::::::::>");
        System.out.println("Strength:  " + strength);
        System.out.println("Speed:     " + speed);
        System.out.println("Health:    " + health);
        System.out.println("<::::::::::::::::::::::>");
    }
    
    // PRIVATE METHODS
    private void generateAbilities(){
        this.strength = (int)(Math.random()*100+1);
        this.speed = (int)(Math.random()*100+1);
        this.health = (int)(Math.random()*100+1);     
        this.damage = (int)(Math.random()*100+1);
    }
    
    // PUBLIC METHODS
    public void fight() {
        System.out.println(this.name + " is fighting!");
        boolean isHit = hitAttempt();
        if (isHit) {
            hitDamage();
        } else {
            System.out.println(this.name + " 攻击未命中!");
        }
    }
   
    public boolean hitAttempt() {
        int chance = (int)(Math.random() * 101);
        return chance <= this.speed;
    }
   
    public void hitDamage(){
        int damageDealt = (int)(this.strength * (Math.random() * 0.5 + 0.5));
        System.out.println(this.name + " 造成了 " + damageDealt + " 点伤害!");
    }
}

逻辑说明

  • hitAttempt返回的布尔值直接作为If语句的判断条件,是Java中布尔值与If-Else结合的基础用法。
  • 完整流程:fight触发攻击→hitAttempt判断命中结果→根据布尔值决定是否执行伤害计算与输出。

内容的提问来源于stack exchange,提问作者Itwasntme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 07:15:35