2016-11-28 2 views
1

У меня есть программа, которая принимает любое римское значение как пользовательский ввод и выводит десятичный эквивалент. Я пытаюсь добавить цикл в программу, чтобы запросить неопределенное значение для римского значения, а затем вывести десятичный эквивалент, затем выполнить обратный вызов и снова запросить ....Java - while цикл, добавляющий первый вывод во второй вывод

+0

и вы хотите напечатать '1000'? – Mritunjay

+0

Возможно, это хорошая идея для инициализации '' 'decimalNum''', прежде чем вы начнете со следующего номера? – Ronald

+0

Да, римское значение M = 1000 (десятичное), первый результат был I = 1, поэтому программа каким-то образом принимает первый вывод значения (1) и добавляет его ко второму значению M = 1001. И, конечно, программа делает это для все дальнейшие значения, означающие только введенное первое значение, верны –

ответ

0

Проблема в том, что decimalNum является глобальной переменной, которая должна (но не) повторно инициализируется внутри цикла while после того, как пользователь вводит римское число.

0

Сброс decimalNum для каждого преобразования.

while (true) { 
     decimalNum = 0; 
..... 

Проблема после вычисления десятичной для I значение сохраняется в переменной decimalNum. Когда вы начинаете преобразование для следующего, оно добавляет новое значение к существующему.

0

Как вы получили decimalNum в static (на уровне класса), та же переменная используется в течение нескольких итераций, поэтому перемещать его к внутренней while петли как int decimalNum =0;

Смежные вопросы