【问题标题】:Below pattern code is not working as expected [closed]下面的模式代码没有按预期工作[关闭]
【发布时间】:2021-10-01 08:03:19
【问题描述】:

以下模式代码未按预期工作。

public class pattern_print {
    public static void main (String args[]){
        int i = 1, j = 5, n = 5;
        while (i <= n) {
            while (j >= i) {
                System.out.print("*");
                j--;
            }
            System.out.print("\n");
            i++;
        }
    }
}

谁能帮帮我?

【问题讨论】:

  • 期待什么?
  • 你得到的输出是什么?预期的输出是多少?

标签: java loops


【解决方案1】:

你期待什么? 您编写的代码显示以下字符:

*****

如果你想显示类似:

*****
****
***
**
*

那么正确的代码是:

public class pattern_print {
    
    public static void main (String args[]) {
    
        int i = 1, j = 5, n = 5;
    
        while (i <= n) {
            while (j >= i) {
                System.out.print("*");
                j--;
            }
    
            System.out.print("\n");
            j=5;
            i++; 
        }    
    }
}

现在取决于您希望显示的内容。

【讨论】:

    【解决方案2】:

    如果预期以下三角形图案:

    *****
    ****
    ***
    **
    *
    

    j 的值需要按照 Andreea Frincu 的建议重置为 n

    但是,在打印图案时,for 循环可能更可取。 此外,由于 Java 11 于 2018 年 9 月发布,因此有一种方法 String::repeat 可以避免多余的嵌套循环,并且可以简单地打印相同的三角形图案:

    for (int i = 5; i >= 0; i--) {
        System.out.println("*".repeat(i));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-21
      • 1970-01-01
      相关资源
      最近更新 更多