2016-09-22 45 views
-1

我有一段if语句的代码。我想要做的就是添加所有出现在五个随机掷骰子中的数字3。从仅符合要求的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); 
} 
+0

你应该看看'ArrayList'的骰子而不是6个人瓦尔 – nerdlyist

+0

您要添加的一切'addThree = die1 + die2 + die3 + die4 + die5;'而不是有分开如果语句并添加比较的模值 – sidgate

+0

如果只有三个3,或者你想得到字符串“3 3 3”,你想得到一个单一的数字(如9)吗? – Cukic0d

回答

1

根据您当前的设置:

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并执行以下操作:

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; 
} 
+1

你会如何使它更有效率安德鲁? –

+1

一个循环...当然 – Cukic0d

+1

@SamuelFrench你可以把它放到一个数据结构中,然后循环。答案也是令人鼓舞的不好的做法:重复代码... – Li357

1

如何这样的事情,我把一些额外的代码来显示结果并填写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); 
0

这样做的另一种方式:

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));