2015-12-10 165 views
1

我想輸出我的取款/存款交易到控制檯,這完美的作品。但我想用卡號旁邊的行號輸出它們。在控制檯中顯示行號? Java

我的代碼是:

public synchronized int withdraw(int cardId, int amount) { 

    bankBalance = bankBalance - amount; 
    System.out.printf("%-12s%-12s%-12s%-12s\n","line(" + cardId + ")", amount," ", + bankBalance); 
    return bankBalance; 
     } 

public synchronized int deposit(int cardId, int amount) { 

    bankBalance = bankBalance + amount; 
    System.out.printf("%-12s%-12s%-12s%-12s\n","line(" + cardId + ")", " " , amount, + bankBalance); 

    return bankBalance; 
} 

將輸出就像這樣:

Transaction Withdrawal Deposit  Balance  
____________________________________________ 
line(3)     5   15   
line(5)     2   17   
line(2)  6      11 

括號中的數字是與卡號這是很好的我要離開了,有。我也想要像1,2,3,4,5,6,7,8,9那樣循環的行號,其中文本「行」是這樣的:

Transaction Withdrawal Deposit  Balance  
____________________________________________ 
1(3)      5   15   
2(5)      2   17   
3(2)  6      11 

任何想法?

+0

你的代碼中的行號? –

+0

在你的類中,初始化一個名爲'lineNumber'的整數。在打印之前,執行'lineNumber ++;'而不是放置行,將'lineNumber'放入打印語句中。 –

回答

-2

你想增加lineNumber。

int lineNumber; 

lineNumber++; 

System.out.println("Random print statement" +lineNumber) 

lineNumber++; 

System.out.println("LineNumber has been increased by one" +lineNumber) 

enter image description here

讓我知道這是否解決您的問題!

:-)

+0

我想你錯過了正在使用的'synchronized'修飾符。另外,你可能想要真正展示你所描述的操作符的用法,而不僅僅是給出定義。 – Mike

-1

根據你使用,你需要的是不會碰到併發問題計數器的​​修飾。也許你可以試試這個:

private static final AtomicInteger i = new AtomicInteger(); 

public synchronized int withdraw(int cardId, int amount) { 
    bankBalance = bankBalance - amount; 
    System.out.printf("%-12s%-12s%-12s%-12s\n", i.incrementAndGet() + "(" + cardId + ")", amount," ", + bankBalance); 
    return bankBalance; 
     } 

public synchronized int deposit(int cardId, int amount) { 

    bankBalance = bankBalance + amount; 
    System.out.printf("%-12s%-12s%-12s%-12s\n", i.incrementAndGet() + "(" + cardId + ")", " " , amount, + bankBalance); 

    return bankBalance; 
} 
+1

downvote的任何原因? – Mike