2016-09-22 47 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));