java - 让这个循环变得简单(在Java中使用循环打印字母J)

标签 java loops for-loop

我尝试在控制台上打印字母 D,但我无法帮助代码比我的预期长。你能帮我吗...还有另一种方法可以减少这段代码吗?谢谢。 这是我的代码:

public class LetterD {
    public static void main(String[] args) {
      for(int i = 1;i<=14;i++){
         for(int j = 1;j<=4;j++) System.out.print("*");
         if(i == 1 || i==14) for(int k = 1;k<=7;k++) System.out.print("*");
         if(i == 2 || i==13) for(int k = 1;k<=9;k++) System.out.print("*");
         if(i == 3 || i==12){
             for(int k = 1;k<=6;k++) System.out.print(" ");
             for(int l = 7;l<=10;l++) System.out.print("*");
         }
         if(i==4||i==11){
             for(int k = 1;k<=7;k++) System.out.print(" ");
             for(int l = 8;l<=11;l++) System.out.print("*");
         }
         if(i==5||i==10){
             for(int k = 1;k<=8;k++) System.out.print(" ");
             for(int l = 9;l<=12;l++) System.out.print("*");
         }
         if(i==6||i==9){
             for(int k = 1;k<=9;k++) System.out.print(" ");
             for(int l = 10;l<=13;l++) System.out.print("*");
         }
         if(i==7||i==8){
             for(int k = 1;k<=10;k++) System.out.print(" ");
             for(int l = 11;l<=14;l++) System.out.print("*");
         }
         System.out.println();
      }
    }
}

输出将如下所示:

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

最佳答案

帮助方法可以大大简化您的代码:

public static void main(String[] args) {
    printAsterisks(11, true);
    printAsterisks(13, true);
    for(int i = 6; i < 10; i++){
        printSpaced(i);
    }
    for(int i = 10; i > 5; i--){
        printSpaced(i);
    }
    printAsterisks(13, true);
    printAsterisks(11, true);
}

static void printSpaced(int spaces){
    printAsterisks(4, false);
    for(int i = 0; i < spaces; i++){
        System.out.print(" ");
    }
    printAsterisks(4, true);
}

static void printAsterisks(int n, boolean newLine){
    for(int i = 0; i < n; i++){
        System.out.print('*');
    }
    if(newLine){
        System.out.println("");
    }
}

关于java - 让这个循环变得简单(在Java中使用循环打印字母J),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10816032/

相关文章:

java - 通过套接字发送 5MB 的数据?

Java GUI + 服务器问题

java - 自定义 FocusTraversalPolicy 类 Java Swing

java - 动态(编译时生成)Java 包名称

java - 信用卡类型和验证

java - 主线程在无限循环中停止

带有 Laravel Blade 模板循环和总和的 JavaScript

java - 如何在不卡住我的应用程序的情况下运行循环?

Javascript 数组和对象比较

javascript - 循环遍历数组对象