}`public static void drawBorder() { // Asterisks based on wins
if (gameCount.asterisk == 0) {
System.out.println(" ");
}
if (gameCount.asterisk == 1) {
System.out.println("**********");
}
if (gameCount.asterisk == 2) {
System.out.println("********************");
}
}
如何为此使用循环,以便打印10个星号乘以gameCount.asterisk的值而不是使用不必要的if语句?
答案 0 :(得分:1)
public static void drawBorder() { // Asterisks based on wins
StringBuilder asterisks = new StringBuilder("");
for (int i = 0; i < gameCount.asterisk; i++) {
asterisks.append("**********");
}
System.out.println(asterisks);
}
答案 1 :(得分:0)
您可以执行以下操作来生成星号字符串:
String asterisks = "";
for(int i=0; i< gameCount.asterisk; i++)
{
asterisks += "*";
}
然而,使用StringBuilder会更有效。
答案 2 :(得分:0)
public static void drawBorder() { // Asterisks based on wins
for (int i = 0; i < gameCount.asterisk; i++)
{
System.out.print("**********");
}
}
使用print而不是println在同一行上打印星号。
答案 3 :(得分:0)
这应该可以用于此目的:
String asteriskString = "";
for (int i = 0; i < gameCount.asterisk; i ++) {
asteriskString.concat("**********");
}
System.out.println(asteriskString);
它为每个gameCount.asterisk添加10个星号到asteriskString。之后,你可以打印出来。
答案 4 :(得分:0)
如果您使用的是Java 8,可以这样做:
public static void drawBorder() {
System.out.println(IntStream.range(0, gameCount.asterisk * 10)
.mapToObj(i -> "*")
.collect(Collectors.joining()));
}
IntStream.range(0, gameCount.asterisk * 10)
将创建一个范围,从0
到gameCount.asterisk * 10
(不包括)。对于gameCount.asterisk == 1
,它会创建:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
然后使用*
将范围中的每个元素映射到mapToObj(i -> "*")
:
["*", "*", "*", "*", "*", "*", "*", "*", "*", "*"]
并将结果加入String
collect(Collectors.joining())
:
"**********"