为了账号安全,请及时绑定邮箱和手机立即绑定

我似乎在 if 语句中的布尔等于错误,并且在removeDie 中我在删除一个骰子时遇到问题

我似乎在 if 语句中的布尔等于错误,并且在removeDie 中我在删除一个骰子时遇到问题

慕娘9325324 2023-11-01 16:41:16
我需要看看如果杯子是空的,printCup 和removeDie 是否返回 false,并从数组或杯子中删除一个骰子,我正在尝试 -- 在removeDie 上,但它没有用我尝试使用 if 与 == 但它给了我错误,因此我切换为等于。关于removeDie,我尝试从数组中获取-1,但它不起作用。我很感谢您对此提出一些建议,提前致谢。public class IndexDie {    public static void main(String[] args) {        System.out.println("Skapar en tärning och skriver ut den");        Die dice1 = new Die();        dice1.printDie();        System.out.println("Skapar en kopp med 3 tärningar och skriver ut koppen");        Cup cup = new Cup(3);        cup.printCup();        System.out.println("lägger 2 tärningar och skriver ut koppen igen");        cup.addDie();        cup.addDie();        cup.printCup();        System.out.println("Slår alla tärningar i koppen och skriver ut koppen igen,dessutom summan");        cup.roll();        cup.printCup();        System.out.println("Summan blir: " + cup.sum());        System.out.println("Tar bort 3 tärningar i koppen och skriver ut den");        cup.removeDie();        cup.removeDie();        cup.removeDie();        cup.printCup();        if (cup.removeDie().equals( false) {            System.out.println("Koppen är redan tom,finns inget att ta bort");        }        if (cup.removeDie().equals(false) {            System.out.println("Koppen är redan tom,finns inget att ta bort");        }        if (cup.removeDie().equals( false) {            System.out.println("Koppen är redan tom,finns inget att ta bort");        }        if (cup.printCup().equals( false) {            System.out.println("error tom kopp!");        }    }}import java.util.ArrayList;public class Cup {    private ArrayList<Die> dice;    public Cup(int x) {        dice = new ArrayList<Die>();        for (int i = 0; i < x; i++) {            dice.add(new Die());        }    }    public void addDie() {        dice.add(new Die());    }    public int sum() {        int sum = 0;        for (int i = 0; i < dice.size(); i++) {            sum = sum + dice.get(i).value();        }        return sum;    }
查看完整描述

3 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

您的方法removeDie是 type void,这意味着它不返回任何内容。


你应该做这样的事情:


public boolean removeDie() {

    boolean ok = true;

    for (int x = 0; x < dice.size(); x--) {

        dice.add(new Die());

        ok = false;

    }


    return ok;

}

进而


if(!cup.removeDie()){

    // ...

}


查看完整回答
反对 回复 2023-11-01
?
动漫人物

TA贡献1815条经验 获得超10个赞

我认为你需要返回一个booleanfrom cup.removeDie(). 也许你可以这样做:


public boolean removeDie() {

    for (int x = 0; x < dice.size(); x--) {

        return dice.add(new Die());

    }

    return false;

}

但我不确定你的逻辑。


查看完整回答
反对 回复 2023-11-01
?
jeck猫

TA贡献1909条经验 获得超7个赞

public class IndexDie {


    public static void main(String[] args) {


        System.out.println("Skapar en tärning och skriver ut den");

        Die dice1 = new Die();

        dice1.printDie();


        System.out.println("Skapar en kopp med 3 tärningar och skriver ut koppen");

        Cup cup = new Cup(3);

        cup.printCup();


        System.out.println("lägger 2 tärningar och skriver ut koppen igen");

        cup.addDie();

        cup.addDie();

        cup.printCup();


        System.out.println("Slår alla tärningar i koppen och skriver ut koppen igen,dessutom summan");

        cup.roll();

        cup.printCup();

        System.out.println("Summan blir: " + cup.sum());


        System.out.println("Tar bort 3 tärningar i koppen och skriver ut den");

        cup.removeDie();

        cup.removeDie();

        cup.removeDie();

        cup.printCup();


        if (cup.removeDie() == (false)) {

            System.out.println("Koppen är redan tom,finns inget att ta bort");

        }

        if (cup.removeDie() == (false)) {

            System.out.println("Koppen är redan tom,finns inget att ta bort");

        }

        if (cup.removeDie() == (false)) {

            System.out.println("Koppen är redan tom,finns inget att ta bort");

        }

        if (cup.printCup() == (false)) {

            System.out.println("error tom kopp!");

        }


    }


}

import java.util.ArrayList;


public class Cup {


    private ArrayList<Die> dice;


    public Cup(int x) {

        dice = new ArrayList<Die>();

        for (int i = 0; i < x; i++) {

            dice.add(new Die());


        }

    }


    public void addDie() {

        dice.add(new Die());


    }


    public int sum() {

        int sum = 0;

        for (int i = 0; i < dice.size(); i++) {

            sum = sum + dice.get(i).value();


        }

        return sum;

    }


    public void roll() {

        for (int p = 0; p < dice.size(); p++) {

            dice.get(p).roll();

        }


    }


    public boolean removeDie() {

        for (int x = dice.size(); x <=1 ; x--) {

            return dice.add(new Die());

        }

        return false;

    }


    public boolean printCup() {


        System.out.println("Tärning: " + dice);

        return false;

    }


}

public class Die {


    private int die;




    public void roll() {

        this.die =1 + (int) (Math.random() * 6);


    }


    public int value() {

        return this.die;


    }


    public void printDie() {

        System.out.println(this.die);



    }




}

如果有人对我如何解决问题感兴趣,仍然需要一些更改,但感谢您的帮助


查看完整回答
反对 回复 2023-11-01
  • 3 回答
  • 0 关注
  • 110 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信