我有一个名为SnowFallReport
的类,当从中创建一个对象时,它会随机将一个数字从1-20分配给一个名为snowFall
的字段。目的是生成随机雪量的虚拟雪报告。然后我尝试创建一个方法,可以根据snowFall
字段中的数字显示一定数量的星号。给了我一个提示,我应该使用for
循环这样做,我只是无法弄清楚如何正确地说出来。代码如下:
import java.util.Random;
public class SnowFallReport
{
// Random amount of snow
private double snowAmount;
// Default constructor creates random amount and assigns to snowAmount
public SnowFallReport()
{
Random snowFall = new Random();
snowAmount = (snowFall.nextDouble() * 20);
}
public double getSnow()
{
return snowAmount;
}
public String getStars()
{
for (int starCount = 0; starCount >= snowAmount; starCount++)
return "*";
/* This is what I thought it should be^ but it turns out I need a return
statement outside of the for loop. I've tried a couple of different ways with no luck */
}
public static void main(String[] args)
{
SnowFallReport day1 = new SnowFallReport();
String lol = day1.getStars();
System.out.print(lol);
}
}
答案 0 :(得分:1)
在getStars
方法中,初始化StringBuffer
(例如sb
),然后在for循环中添加' *'每个雪量的字符。然后,返回sb.toString()
。
此外,你的for循环中的循环条件是错误的。如果语句为真,则循环将继续,而不是假。
以下方法应该有效:
public String getStars()
{
StringBuilder sb = new StringBuilder();
for (int starCount = 0; starCount < snowAmount; starCount++)
sb.append("*");
return sb.toString();
}
答案 1 :(得分:0)
for (int starCount = 0; starCount >= snowAmount; starCount++)
表示startCount = 0.而startCount&gt; = snowAmount执行循环然后递增startCount。
for (int starCount = 0; starCount <= snowAmount; starCount++)
另外:在for循环之后直接返回将打破循环 - 你需要在缓冲区中添加一个*,然后在完成循环后返回缓冲区。
答案 2 :(得分:0)
这是一个简单的for循环,它将返回星数。
StringBuilder sb = new StringBuilder();
for (int starCount = 0; starCount <= snowAmount; starCount++)
sb.Append("* ");
return sb;
你也可以尝试返回一个星号,然后继续循环。
for (int starCount = 0; starCount <= snowAmount; starCount++)
yield return "*";
此外,你的更大的标志应该是一个小于标志:)
答案 3 :(得分:0)
StringBuilder sb = new StringBuilder();
for (int starCount = 0; starCount < snowAmount; starCount++) {
sb.append('*');
}
return sb.toString();
答案 4 :(得分:0)
您也可以初始化字符串,如
char[] c = new char[snowFall];
Arrays.fill(c, '*');
System.out.println(new String(c));
答案 5 :(得分:0)
你可能想要使用QuickCheck库中的生成器,就预先存在的PrimitiveGenerators来说它真的很酷
很容易
Generator<String> generator = PrimitiveGenerators.strings(5,20);
for (int i=0;i<10;i++) {
String randomString = generator.next();
...
}