我在Java中设计了不同的图案,然后我希望它们全部打印在一条水平线上。我的程序以垂直线显示输出。这是我的代码:
package demo;
public class PatternDemo {
public static void main( String[] args ) throws InterruptedException {
int n = 5;
for ( int i = 0; i < n; i++ ) {
for ( int j = 0; j < n; j++ ) {
if ( i == 0 || j == 0 || i == n / 2 || (i <= n / 2 && j == n - 1)
|| i == n - 2 && j == n - 3 || i == n - 1 && j == n - 1 ) {
System.out.print( "* " );
} else {
System.out.print( " " );
}
}
System.out.println( );
}
for ( int i = 0; i < n; i++ ) {
for ( int j = 0; j < n; j++ ) {
if ( i == 0 || j == 0 || j == n - 1 || i == n / 2 ) {
System.out.print( "* " );
} else {
System.out.print( " " );
}
}
System.out.println( );
}
}
}
答案 0 :(得分:1)
System.out.println()将移动到下一行,移动后将无法返回到上一行。您必须更改整个逻辑以获取所需的模式
int n= 5;
for ( int i = 0; i <n; i++) {
for ( int j = 0; j <n; j++) {
if(i==0||j==0||i==n/2||(i<=n/2&&j==n-1)||i==n-2&&j==n-3||i==n-1&&j==n-1) {
System.out.print("* ");
} else {
System.out.print(" ");
}
}
for (int j = 0; j < n; j++) {
if(i==0||j==0||j==n-1||i==n/2){
System.out.print("* ");
}else {
System.out.print(" ");
}
}
System.out.println();
}
输出:
* * * * * * * * * *
* * * *
* * * * * * * * * *
* * * *
* * * *
答案 1 :(得分:0)
System.out.print()
将输出立即置于另一个位置,并且它们之间没有换行符。这就是为什么某些部分出现在同一行中的原因。如果要垂直打印,请使用System.out.println()
,这样可使下一行打印到下一行。
答案 2 :(得分:0)
代码中的System.out.println()
语句将始终打印一行。也许删除它们可以解决您的问题。