Возможно, вы захотите включить содержимое Account.in
, чтобы предоставить больше информации, но вот некоторые комментарии:
Переменные: за исключением переменных, все константы экземпляра, класса и класса находятся в смешанном регистре с строчной первой буквой .
Это означает, что по договоренности имена переменных должны быть в верхнем / нижнем регистре, например accountNum
, beginningBalance
, numberOfDeposits
и т. Д.
Следует также отметить, что то, как вы размещаете свои фигурные скобки, очень нетрадиционно. Для вас может быть хорошей идеей изучить хороший стиль кодирования .
Эта часть также крайне противоречива:
int TransactionType; // declared as int
//...
TransactionType=inFile.nextInt(); // read as int
//...
switch (TransactionType)
case '1': // used as ... char? ASCII '1' = 49
Я на 99% уверен, что вам действительно нужно switch
на case 1:
, case 2:
, case 3:
.
Вы также можете распечатать конечный баланс ПОСЛЕ , который вы обработали. Прямо сейчас вы всегда будете печатать одни и те же цифры для начального и конечного баланса.
Вам также может быть полезно знать, что в Java есть операторы «составного присваивания», которые сделают ваш код более читабельным. Возможно, вам сейчас не нужно беспокоиться о точной семантике, но в основном вместо этого:
BeginningBalance = BeginningBalance
+ TransactionAmount;
BeginningBalance = BeginningBalance
- TransactionAmount;
Вместо этого вы можете написать:
beginningBalance += transactionAmount;
beginningBalance -= transactionAmount;
Наконец, последний комментарий о InputMismatchException
: другие уже объяснили вам, что это значит. Моя лучшая догадка сейчас заключается в том, что ваша проблема вызвана этим:
Входной файл: номер счета клиента, остаток на счете в начале месяца, тип транзакции (вывод, депозит, проценты), сумма транзакции
против
TransactionAmount=inFile.nextDouble();
TransactionType=inFile.nextInt();
Мне нужно увидеть Account.in
для подтверждения, но я подозреваю, что тип транзакции int
появляется до суммы транзакции double
, как сказано в заявлении о проблеме. Ваш код читает их в обратном порядке.
Это попытается прочитать int
как nextDouble()
, что нормально, но double
как nextInt()
выдаст InputMismatchException
.