[英]Printing for value of ArrayList Integer
我正在開發一款基本上有成堆硬幣的小游戲,你必須從一堆硬幣中取出一些硬幣,然后程序打印出以下格式的結果:
Pile 1: ****
Pile 2: *****
Pile 3: **
我有一個數組列表,存儲所有這些值,如下所示:
List<Integer> coins = new ArrayList<>();
[4,5,2]
但我無法弄清楚如何正確打印*。
如何編寫此代碼以打印元素中每個值的*。 IE 4 *如果元素值是4?
這是我目前的方法:
static void printGameState(){
for(int i = 0; i <= coins.size()-1; i++){
int k = i+1;
System.out.print("Pile " + k + ": ");
for(int j = 0; j <= coins.indexOf(i); j++){
System.out.print("*");
}
}
}
您必須通過訪問數組coins[i]
來查看不同堆棧的值,而不是使用堆棧數作為堆棧高度:
static void printGameState(){
for(int i = 0; i < coins.size(); i++) {
// Build the coin stack
String coinStack = "";
for(int j = 0; j < coins.get(i); j++) {
coinStack += "*";
}
// And output it
System.out.println("Pile " + (i + 1) + ": " + coinStack);
}
}
而不是使用這個條件:
j <= coins.indexOf(i);
使用這個條件:
j < coins.get(i);
試試吧:
for(int i = 0; i <= coins.size()-1; i++) {
int k = i+1;
System.out.print("Pile " + k + ": ");
for(int j = 0; j < coins.get(i); j++) {
System.out.print("*");
}
System.out.println();
}
你會得到:
Pile 1: ****
Pile 2: *****
Pile 3: **
你應該使用<而不是<=。 此外,您應該能夠使用get(i)
獲取索引i處的值。
static void printGameState(){
for(int i = 0; i < coins.size(); i++){
int k = i+1;
System.out.print("Pile " + k + ": ");
for(int j = 0; j < coins.get(i); j++){
System.out.print("*");
}
}
}
您也可以通過形成另一種方法來打印使它有點清潔*
如:
public void ast(int n){
for(int i=0; i<n; i++){
System.out.print("*");
}
}
然后printGameState循環的內容將是
int k = i+1;
System.out.print("Pile " + k + ": ");
ast(coins.get(i));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.