2016-12-12 2 views
0

У меня в основном есть мобильный телефон, сделанный в приложении под названием BlueJ. Он вводит длительность телефонного звонка, и вы вставляете кредит. Каждая минута равна фунту. Так что в основном, если я вложу 5 фунтов и 6 минут, он будет делать 6-5.Два метода работают одновременно

В этом случае он не работает.

Кредит является успешным, но по мере изменения кредита длительность минус из НОВОГО кредита, а не того, который был введен.

Есть ли способ обойти это или запустить его в одно и то же время или для старых значений до их изменения?

Вопрос в том, где он говорит:

credit = credit - duration; 
    duration = duration - credit; 

Большое спасибо.

public void makePhoneCall() 
    { 
     if(credit == 0) 
     System.out.println("Insert more than 0 credit to make a phone call!"); 
    else { 
     if(credit >= duration) { 
     System.out.println("The phone number " + number + " is being dialed for " + duration + " minutes"); 
     credit = credit - duration; 
     duration = duration - credit; 
    } 
    else { 
     if(credit < duration) 
     System.out.println("You do not have enough credit to make a phone call! Your credit is " + credit + " pounds"); 
    } 
    } 

ответ

0

Я не уверен, если я получил то, что вы пытаетесь сделать, но вот что я понял:

С credit = credit - duration; вы пересматривают значение «кредит». Но вы хотите вычесть первоначальное значение «кредит» в строке ниже.

Вы можете просто хранить значение, прежде чем изменить его в другой переменной следующим образом:

int oldCredit = credit; 
credit = oldCredit - duration; 
duration = duration - oldCredit; 
Смежные вопросы