2014-02-09 44 views
-3

我必須弄清楚如何添加整數,顯示在控制檯System.out.println();如果隨機數的值不1,3,5
例如,如果我隨機3,3,5,6,1(絕不會有超過5張隨機數),那麼我需要打印的消息和61總和。如果下一個隨機是2,2,5,6,6,那麼我需要消息和2+2+6+6的總和。如果value =!,則添加整數! 「X」

如何做到這一點有什麼想法?

使用該隨機數:

Random rand = new Random(); 
int a = (int) (6 * rand.nextDouble() + 1); 
+7

對於初學者來說,如果你想有一個隨機整數,只要使用'nextInt(N)',但如果你問我們如何使用'if'在Java中,你需要閱讀教程。 – chrylis

+0

開始創建一個名爲sum的變量並將其設置爲零。從i = 0到i = 5創建一個for循環,然後調用你的問題中的兩條線。檢查a是否不等於1 3或5然後sum + = a。在for循環顯示和復位總和爲0. – Mohamed

+0

你怎麼想排除1,但在第一種情況下總結它與6? – ssayyed

回答

0

如果只想總結偶數(這我假設給定的情況下),使用循環和模

int[] numbers = { 2, 2, 5, 6, 6 }; 

int sum = 0; 
for (int number : numbers) { 
    if(number % 2 == 0) { 
     sum += number; 
    } 
} 

,如果它是你的目標建設整數

int[] numbers = { 2, 2, 5, 6, 6 }; 
int[] excluded = { 1, 3, 5 }; 

int sum = 0; 
for (int number : numbers) { 

    if(Arrays.binarySearch(excluded, number) < 0) { 
     sum += number; 
    } 
} 

,如果你想有一個高度可擴展的解決方案(或打動你的老師)做這樣的事情

陣列的總和時,排除數字的動態範圍
interface Predicate<T> { 
    boolean evaluate(T value); 
} 

public int sum(int[] numbers, Predicate<Integer> predicate) { 
    int sum = 0; 
    for (int number : numbers) { 
     if (predicate.evaluate(number)) { 
      sum += number; 
     } 
    } 
    return sum; 
} 

,然後調用

int[] numbers = { 2, 2, 5, 6, 6 }; 

int sum = sum(numbers, new Predicate<Integer>() { 
    @Override 
    public boolean evaluate(Integer value) { 
     return !(value == 1 || value == 3 || value == 5); 
    } 
}); 
-1
if(!(a==1||a==3||a==5)){ 
    sum+=a; 
} 

此檢查以查看的a的值是否等於1,3或5,並且如果不是的話,它增加了a到總和。

此外,它看起來像你將永遠不會有一個數字大於6;在這種情況下,您可以使用模數(餘數)運算符來檢查數字是偶數還是奇數。然後,你可以說:

if(a%2!=1){ //if the remainder when a is divided by 2 is not 1 
      // - i.e. if a is not odd 
    sum+=a; 
} 
+0

人們可以推測,問題是要求你過濾掉奇數,但是確切的做法是隻檢查1,3和5,因爲問題明確表示要排除它們而沒有別的。您將對未指定的域進行假設。 – MxyL

+0

@MxyL的代碼片段,他貼出只會給在整數範圍1 - 6 –

+0

@JarrodRoberson不,實際上,事實並非如此。在Java中,'='是賦值運算符,所以'!a%2 = 0'甚至不會編譯。你將不得不使用'=='或'!='。 –