【问题标题】:Output generating too many rows输出生成太多行
【发布时间】:2018-07-31 14:13:41
【问题描述】:

好的,所以我想做的是使用星号制作图片。图片应该不超过或少于 10 行,并且每行应该是 1-10 范围内的任意数量的星号。我遇到的唯一问题是我没有得到 10 行,相反,我得到了 11 到 17 行。我不确定我错过了什么,我很感激你能提供给我的任何见解。 谢谢!

public class RandomPicture {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) 
    {     
        // Create a Random picture using asterisks
        Random rand = new Random();

        for (int count = 0; count <=2; count++)

        {
        if (rand.nextInt(2) == 0){    
        System.out.println("*");
        } if (rand.nextInt(2) == 0){
        System.out.println("**");
        } if (rand.nextInt(2) == 0){
        System.out.println("***");
        } if (rand.nextInt(2) == 0){
        System.out.println("****");        
        } if (rand.nextInt(2) == 0){
        System.out.println("*****");        
        } if (rand.nextInt(2) == 0){
        System.out.println("******");        
        } if (rand.nextInt(2) == 0){
        System.out.println("*******");        
        } if (rand.nextInt(2) == 0){
        System.out.println("********");        
        } if (rand.nextInt(2) == 0){
        System.out.println("*********");       
        } if (rand.nextInt(2) == 0){ 
        System.out.println("**********");
        }
     }
    }
}

【问题讨论】:

  • 为什么你有 10 个if 语句都评估为true?你可以通过两个复利来逃脱for-loops
  • 你想实现什么逻辑?为什么要循环 3 次,每次得到 10 个随机数?
  • 您能否向我们提供您想要的示例输出?我不明白你想用代码做什么
  • 您有 10 个 if 语句,每个语句在 50% 的时间内随机评估为真,并被一个迭代 3 次的循环包围。 3 * 10 * 50% = 15,所以程序将打印 15 行 +/- 任何引入的随机变化。 --- 如果要打印 10 行,每行包含 1-10 颗星,则循环 10 次,每次迭代生成一个随机数,并相应打印星数。
  • 你的 for (int count = 0; count

标签: java


【解决方案1】:

我认为您正在寻找类似的东西:

public static void main(String[] args) 
{     
    // Create a Random picture using asterisks
    Random rand = new Random();

    for (int lineCnt = 0; lineCnt < 10; lineCnt++) {
        for (int i = 0; i < (rand.nextInt(9) + 1); i++) {
            System.out.print("*");
        }
        System.out.println();
    }
}

请记住,有一些更复杂的方法可以创建包含 n 个字符的字符串(请参阅2804827)。

请注意代码的格式。太可怕了……

【讨论】:

  • 我知道我现在的想法哪里出了问题。我没有考虑嵌套循环过程,其中第一个“for”语句确定下一条语句将运行多少次,第二个“for”语句生成一个随机整数,该整数确定(在这种情况下)要打印的星号数量在每一行。数量是通过设置“rand.nextInt(9) + 1”来告诉 java 在 1 - 10 之间选择一个随机整数来确定的。非常感谢你对这个 Manfred 的帮助。
猜你喜欢
  • 1970-01-01
  • 2013-04-07
  • 2014-01-30
  • 1970-01-01
  • 2019-06-29
  • 2021-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多