【问题标题】:Creating a Christmas Tree - Java创建圣诞树 - Java
【发布时间】:2021-04-06 09:54:42
【问题描述】:
 public static void printStars(int num){
    for (int x = 0; x< num; x++){
        System.out.print("*");
    }
    System.out.println("");
}
public static void printSpaces(int spaces){
    for (int y = 1; y<= spaces ; y++){
        System.out.print("0");
    }
}
public static void leftLeaningTriangle(int num){
    for (int m = 1; m<=num; m++){
        printStars(m);
    }
}
public static void rightLeaningTriangle (int tri){
    for (int n =1; n<=tri;n++){
        printSpaces(tri-n);
        printStars(n);
    }
}
public static void christmasTree(int height){
    for (int i = 1; i<=height; i++){
        int z = height-i;
        printSpaces(z);
        height++;
        printStars(i++);
    }

嗨,有人可以帮我理解为什么圣诞树图案的顶部是 1 颗星,而不是上面代码中的 2 颗星吗?使用 printStars(i++) 会不会是 printStars(2)? 我确实有一个 main 方法,只是这里没有显示。

【问题讨论】:

  • 投票减一,单收。你必须喜欢 Java 标签!
  • 请用英文解释你认为i++ 做了什么。

标签: java loops for-loop methods


【解决方案1】:

对于printStars(i++),将初始值,而不是i 的增量值传递给函数。

i 仅在函数运行后增加:您的代码相当于

printStars(i);
i = i + 1;

【讨论】:

  • @OliveGalia:这是所有 C 类型语言的共同点。到时候你会习惯的。
  • 澄清一下,这意味着 - printStars(i++) 将 i 增加 1 一旦它被执行并且 for 循环 i++ 迭代发生在之后?在循环再次开始之前将 h 增加 1 并将 i 增加 2?那正确吗?谢谢
【解决方案2】:

i++使用后自增运算符,先返回变量的原始值,然后加1。

【讨论】:

    【解决方案3】:

    试试++i i++ 取 i 的值,然后将其递增,因此函数很好地取 1 通过使用++i,我将增加 1,然后很好地传递函数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-23
      • 1970-01-01
      • 1970-01-01
      • 2014-01-13
      • 2021-12-22
      相关资源
      最近更新 更多