2016-12-12 8 views
0

私は基本的にBlueJというアプリで作られた携帯電話を持っています。電話の通話時間が入力され、クレジットを挿入します。毎分は1ポンドに等しい。したがって、基本的に5ポンドと6分を挿入すると、6-5が実行されます。同時に実行する2つの方法

この場合、動作していません。

クレジットは成功しましたが、クレジットが変更されると、期間は新しいクレジットから差し引かれ、入力されたクレジットは除きます。

これを回避する方法や、変更する前に古い値を同時に実行する方法はありますか?それが言うところ

問題は、次のとおりです。

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; 
関連する問題