Java 从仅符合要求的if语句中添加数字

Java 从仅符合要求的if语句中添加数字,java,if-statement,Java,If Statement,我有一段if语句的代码。我想做的是把所有出现在五个骰子的随机骰子中的数字加起来 例如,我掷骰:5 5 2 3 3 6是打印出来的 当前,如果出现3,则会添加所有转鼓。我试图理解如何只分离要添加的三个。任何帮助或建议都将不胜感激,谢谢 if (die1 == 3 || die2 == 3 || die3 == 3 || die4 == 3 || die5 == 3 ) { int addThree; addThree = die1 + die2 + die3 + die4 + di

我有一段if语句的代码。我想做的是把所有出现在五个骰子的随机骰子中的数字加起来

例如,我掷骰:5 5 2 3 3

6是打印出来的

当前,如果出现3,则会添加所有转鼓。我试图理解如何只分离要添加的三个。任何帮助或建议都将不胜感激,谢谢

if (die1 == 3 || die2 == 3 || die3 == 3 || die4 == 3 || die5 == 3 ) {
    int addThree;
    addThree = die1 + die2 + die3 + die4 + die5;
        System.out.println();
        System.out.println(addThree);
}

使用当前设置:

int total = 0;

if(die1 == 3) total += die1;
if(die2 == 3) total += die2;
if(die3 == 3) total += die3;
if(die4 == 3) total += die4;
if(die5 == 3) total += die5;
我会将模具放入
列表中
,并执行以下操作:

List<Integer> dice = new ArrayList<>();
dice.add(die1);
dice.add(die2);
dice.add(die3);
dice.add(die4);
dice.add(die5);

total = 0;
for(Integer die : dice) {
  if(die == 3) total += die;
}
List dice=new ArrayList();
骰子。加入(骰子1);
骰子。加入(骰子2);
骰子。加入(骰子3);
骰子。加入(骰子4);
骰子。加入(骰子5);
总数=0;
用于(整数骰子:骰子){
如果(模具==3)总计+=模具;
}

像这样的事情怎么样,我添加了一些额外的代码来显示结果并填充ArrayList:

    ArrayList<Integer> dice = new ArrayList<>();

    dice.add(1);
    dice.add(2);
    dice.add(4);
    dice.add(3);
    dice.add(3);

    int addThree = 0;

    for (Integer die : dice) {
        if (die == 3) {
            addThree += 3;
        }
    }
    System.out.println(addThree);
ArrayList dice=new ArrayList();
骰子。加入(1);
骰子。加入(2);
骰子。加入(4);
骰子。加入(3);
骰子。加入(3);
int addThree=0;
用于(整数骰子:骰子){
如果(模具==3){
加三+=3;
}
}
System.out.println(add3);

另一种方法:

 List<Integer>numbers=new ArrayList<Integer>();
 numbers.add(5);
 numbers.add(4);
 numbers.add(3);
 numbers.add(3);
 numbers.add(3);
 System.out.println(3*Collections.frequency(numbers, 3));
Listnumbers=newarraylist();
增加(5);
增加(4);
增加(3);
增加(3);
增加(3);
System.out.println(3*集合频率(数字,3));

你应该查看
ArrayList
中的骰子,而不是6个单独的变量你正在添加所有内容
addThree=die1+die2+die3+die4+die5
而是使用单独的if语句并添加比较的die值如果只有三个3,您是想得到一个数字(如9),还是想得到字符串“3”?如何提高效率Andrew?@SamuelFrench您可以将其放入数据结构中,然后循环。答案也鼓励了错误的做法:复制代码……虽然你是对的,但将代码添加到列表、集合或任何循环中可能会更有效,因为你是在用自己没有的信息进行假设。如果他是API的消费者,而API将它们作为单个变量返回,那该怎么办?你不能说“API不好”:(我知道他只是改变了答案,而旧的答案是错误的做法。将其添加到数据结构中,并在结构中循环以添加数字会更干净、更易于维护,但我不认为这会更有效,因为循环的每次迭代都会执行一个if语句,以查看元素是否为3,然后添加,在第二个答案中,它实际上比较慢,因为他首先创建了一个新的数据结构(对象创建),然后遍历它。他仍然对额外的对象创建执行相同的逻辑,然后使用额外的控制结构产生任何开销。