Как я могу добавить переменную каждые l oop? - PullRequest
0 голосов
/ 30 апреля 2020

Поэтому я хочу добавлять переменную rolltotal к себе каждый раз, когда она повторяется.

    Random ran = new Random();
    int roll;
    int rolltotal;
    Scanner s= new Scanner(System.in);
    roll=s.nextInt();
    while(roll!=-1) {
        int die1 = ran.nextInt(6)+1;
        int die2 = ran.nextInt(6)+1;
        int die3 = ran.nextInt(6)+1;
        int die4 = ran.nextInt(6)+1;
        int die5 = ran.nextInt(6)+1;
        int die6 = ran.nextInt(6)+1;
        rolltotal=die1+die2+die3+die4+die5+die6;
        System.out.println(rolltotal);
        int a;
        a=rolltotal+rolltotal;
        System.out.println(a);
        roll=s.nextInt();
    }

Я понятия не имею, как это объяснить, надеюсь, вы понимаете, о чем я. Допустим, я получил 20, а после l oop получил 18. Как я могу добавить эти два числа.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

Вы могли бы немного упростить свой код, имитируя переход на шесть d ie, не требуя отслеживания шести независимых переменных (если вы не хотите их отображать). Вместо этого вы можете использовать IntStream с ограничением. Кроме того, более идиоматический c Java способ записи al oop, который заканчивается при сравнении и присвоении, выглядит примерно так:

Random ran = new Random();
int rolltotal = 0;
Scanner s = new Scanner(System.in);
int roll;
while ((roll = s.nextInt()) != -1) {
    int round = IntStream.generate(() -> ran.nextInt(6) + 1).limit(6).sum();
    System.out.println(round);
    rolltotal += round;
}
System.out.println(rolltotal);

Обратите внимание, что в действительности выше ничего не используется roll (но я включил это, чтобы продемонстрировать, как вы можете, если вам нужно). Это может быть упрощено еще дальше. Мол,

Random ran = new Random();
int rolltotal = 0;
Scanner s = new Scanner(System.in);
while (s.nextInt() != -1) {
    int round = IntStream.generate(() -> ran.nextInt(6) + 1).limit(6).sum();
    System.out.println(round);
    rolltotal += round;
}
System.out.println(rolltotal);
0 голосов
/ 30 апреля 2020

Следите за ссылками rolltotal вне l oop и получите временную сумму, доступную внутри l oop в конце l oop, обновите rolltotal=rolltotal+tempSum

Random ran = new Random();
    int roll;
    int rolltotal;
    Scanner s= new Scanner(System.in);
    roll=s.nextInt();
    while(roll!=-1) {
        int die1 = ran.nextInt(6)+1;
        int die2 = ran.nextInt(6)+1;
        int die3 = ran.nextInt(6)+1;
        int die4 = ran.nextInt(6)+1;
        int die5 = ran.nextInt(6)+1;
        int die6 = ran.nextInt(6)+1;
        int tempSum=die1+die2+die3+die4+die5+die6;
        System.out.println(tempSum);
        rolltotal=rolltotal+tempSum;
        System.out.println(rolltotal);
        roll=s.nextInt();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...