在java中打印v形

我是 Java 编程的新手,我正在我的教科书中进行这项练习。目标是打印V数字的形状模式。从下图中,您可以看到输出应该是什么样子。我在创建另一半数字时遇到问题。我已将我的代码粘贴在下面以供参考。

http://img4.mukewang.com/6179ffea00019e6d01710139.jpg

for (int i = 7; i >= 1; i--) {

    for (int j = 1; j <= i; j++) { 

        System.out.print(" ");

    }


    System.out.print(i);


    for (int k = 1; k >= i*2; k++) {

        System.out.print(" ");

    }


    System.out.println(i);


哔哔one
浏览 227回答 2
2回答

aluckdog

使用以下代码(只是对你的代码做了一些修改,没有检查其效率):public static void main(String[] args) {&nbsp; &nbsp; for (int i = 7; i >= 1; i--) {&nbsp; &nbsp; &nbsp; &nbsp; for (int k = 7; k >= i; k--) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.print(" ");&nbsp; // Print 7-i number of spaces before start of each line&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; System.out.print(i); // Print i&nbsp; &nbsp; &nbsp; &nbsp; for (int j = 1; j <= i*2; j++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.print(" "); // Print i*2 number of spaces after printing i&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(i); // Print i&nbsp; &nbsp; }}

慕桂英546537

而不是嵌套循环(并向后迭代),我会用一种方法来分解空白的生成,以重复给String定的次数。喜欢,private static String repeat(String s, int n) {&nbsp; &nbsp; return Stream.generate(() -> s).limit(n).collect(Collectors.joining());}那么我更喜欢一个StringBuilder和一个单一的电话println喜欢public static void main(String[] args) {&nbsp; &nbsp; int start = 6;&nbsp; &nbsp; for (int i = 0; i < start; i++) {&nbsp; &nbsp; &nbsp; &nbsp; int v = start - i;&nbsp; &nbsp; &nbsp; &nbsp; StringBuilder sb = new StringBuilder();&nbsp; &nbsp; &nbsp; &nbsp; sb.append(repeat(" ", i)).append(v);&nbsp; &nbsp; &nbsp; &nbsp; sb.append(repeat(" ", 2 * v)).append(v);&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(sb);&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java