Enter edge length of your rhomboid: 5
Here is your rhomboid:
*****
*****
*****
*****
*****
我需要用扫描仪打印那个菱形。我得到:* * * * * *
我的代码就像通常我并没有那么糟糕,但我甚至无法做第一行:
import java.util.Scanner;
public class rhomboid {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter edge lenght of your rhomboid: ");
int edgelenght = scan.nextInt();
System.out.println("Here is your rhomboid:");
while(edgelenght > 0){
System.out.print(" ");
System.out.print("*");
edgelenght--;
答案 0 :(得分:0)
所以你的代码只会打印1D输出.. 输出: - *****
所以,要解决这个问题,你需要两个循环,一个用于行和列。现在对菱形的2D打印进行一点修改,首先现在必须在打印前有4个空格的间隙,它可以通过使用另一个变量来实现k如下所示。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter edge lenght of your rhomboid: ");
int edgelenght = scan.nextInt();
int k = edgelenght - 1;
for (int i = 0; i < edgelenght; i++) {
for (int j = 0; j < k + edgelenght; j++) {
if (j < k) {
System.out.print(" ");
} else {
System.out.print("*");
}
}
k--;
System.out.println();
}
}
答案 1 :(得分:0)
你得到的是你在代码中写的内容。
while(edgelenght > 0){
System.out.print(" ");
System.out.print("*");
edgelenght--;
}
将打印edgelenght乘以空格“”,然后打印“*”。
你想要的是这样的:
for(int line = 0; line < edgeLength; line++){
// in line 0 print 4 spaces (5-1), in line 3 print 1 (5-1-3), in line 4 (the last one) print 0
for(int space = 0; space < edgeLength - line - 1; space++){
System.out.print(" ");
}
for(int asterix = 0; asterix < edgeLength; asterix++){
System.out.print("*");
}
// print a newline
System.out.println("");
}
你需要先在线上循环 对于每一行,您需要一个循环来打印空间。一个打印*。