Часть, которую вы не поняли, заключается в том, что каждый метод - фактически каждый вызов каждого метода - имеет свою собственную коллекцию локальных переменных.Это означает, что
- переменная
winnings
, объявленная в main
, НЕ является той же переменной, что и переменная winnings
, объявленная в determineWinnings
; - переменная
bet
объявленная в main
НЕ является той же переменной, что и переменная bet
, объявленная в getBet
.
Вам нужно убедиться, что значение, возвращаемое каждым , вызываетсяМетод назначается переменной, в которой вы хотите сохранить его, в методе caller .Таким образом, в main
, когда вы вызываете getBet
, вы действительно хотите записать
bet = getBet(inScanner, currentPool);
, чтобы значение, возвращаемое из getBet
, присваивалось переменной bet
из main
.Аналогичным образом, когда вы вызываете determineWinnings
, вам нужно написать
winnings = determineWinnings(highLow, bet, roll);
, чтобы значение, возвращаемое из determineWinnings
, было присвоено переменной winnings
из main
.
Если вы этого не сделаете, то все переменные в main
просто сохранят свои исходные значения, которые 100
для currentPool
и 32
для выигрышей (потому что ' '
- это просто еще один способ записи 32
).Вот почему ваше окончательное значение оказывается 132
.