Java вспоминает случайно выбранные перечисления и суммирует все - PullRequest
1 голос
/ 24 декабря 2011

Простое продолжение этой статьи

Java Как получить сумму всех значений каждого перечисления

полный исходный код ниже

http://pastebin.com/VMGUJmeZ

У меня есть цикл For ниже, и сегодня я хочу спросить вас, ребята, как я могу вспомнить все случайно выбранные перечисления и суммировать все их значения.

    for (int i = amount; i > 0; --i){//determines the amount of cycles.
        Junk randomX = Junk.values()[random.nextInt(Junk.values().length)];
//randomly picks an enum 
        System.out.println(randomX);

        }

Ниже приведено решение, которое я сделал, который в основном объявил int sum, инициализировал его и поместил в цикл for для сбора значений перечислений

for (int i = amount; i > 0; --i){

        Junk randomX = Junk.values()[random.nextInt(Junk.values().length)];
        //randomly picks an enum 
        System.out.println(randomX);

        for(Junk o : Junk.values()){

            sum += o.getValue();
            //sorry, I had sum declared and initialized outside of the loop.
            System.out.println(sum);
        }
    }

к сожалению, выводбыло нежелательно

Dresser
0
150
400
650
650
650
...

Я понимаю, что в основном прошу других помочь мне в написании кода для меня, но я не уверен, как еще это сделать.

Также я понимаюможет оказаться невозможным, учитывая, что единственный способ получить сумму значения перечисления - это сделать это вне цикла for, что затем сделает решение невозможным, поскольку оно получит только все значения.

Возможно, есть что-токроме цикла for, который я мог бы использовать, чтобы кто-то мог порекомендовать меня в использовании.

Ответы [ 2 ]

2 голосов
/ 24 декабря 2011

у вас есть второй цикл

for(Junk o : Junk.values()){
  sum += o.getValue();
  //sorry, I had sum declared and initialized outside of the loop.
  System.out.println(sum);
}

что не обязательно. Просто замените эту часть на

sum += randomX.getValue();
System.out.println(sum);
1 голос
/ 24 декабря 2011
int sum = 0;
for (int i = amount; i > 0; --i){

    Junk randomX = Junk.values()[random.nextInt(Junk.values().length)];
    //randomly picks an enum 
    System.out.println(randomX);

    sum += randomX.getValue();
    System.out.println(sum);
}

System.out.println("grand total: " + sum);
...