我尝试在控制台上打印字母 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/