我一直在尝试创建一个看起来像这样的矩形
*****
* *
*****
或者
************
* *
************
取决于我输入的数字,我似乎无法做到正确。这就是我到目前为止所拥有的
import java.util.Scanner;
public class DrawRectangle{
public static void main (String [] args){
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter an integer greater 1 for the length");
int length = keyboard.nextInt();
int rectangle = draw_rectangle(length);
System.out.print(rectangle);
}
public static int draw_rectangle(int m){
for (int star = 2; star <= m; star++){
System.out.print("*");
}
System.out.println("*\f *\f\r\n");
for(int star = 2; star <= m; star++){
System.out.print("*");
}
return (m);
}
}
答案 0 :(得分:0)
所以你只是想创建一个打印N长度矩形的方法。 首先,这个方法不需要返回一个int,它只能是void。在main方法的末尾,您正在打印 rectangle ,它与 length 的值相同。
import java.util.Scanner;
public class DrawRectangle{
public static void main (String [] args){
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter an integer greater 1 for the length");
int length = keyboard.nextInt();
draw_rectangle(length);
System.out.print(length); // This was rectangle but will print out whatever int the user entered
}
public static void draw_rectangle(int m) {
for(int star = 0; star < m; star++) System.out.print("*");
System.out.print("\n*");
for(int space = 0; space < m-2; space++) System.out.print(" ");
System.out.print("*\n");
for(int star = 0; star < m; star++) System.out.print("*");
System.out.println();
}
}
您将注意到矩形图形的变化。第一行是 m *
s,下一行包含2个*
和 m-2 空格。以下行就像第一行一样。请注意,从 0到m-1 的循环将迭代m次。您应该将此信息发送至Code Review以获取更多有用的提示。
答案 1 :(得分:0)
无法理解为什么你用2开始循环或中间打印试图做什么但是这是我怎么做的
for(int i=0;i<m;i++)
{
for(int j=0;j<m;j++)
{
if(i==0 || i==m)
System.out.print("*");
else if(j==0 || j==m)
System.out.print("*");
else
System.out.print(" ");
}
System.out.print("\n");
}
答案 2 :(得分:0)
您可以创建一种打印矩形的方法和一种打印正方形的附加方法,作为前一种方法的特例,其中宽度 是 高度 的两倍,以便正确显示。
输出:
******
* *
******
************
* *
************
代码:
public static void main(String[] args) {
printSquare(3, ' ', '*');
System.out.println();
printRectangle(3, 12, ' ', '*');
}
public static void printSquare(int size, char fill, char border) {
printRectangle(size, size * 2, fill, border);
}
public static void printRectangle(int height, int width, char fill, char border) {
for (int i = 0; i < height; i++) {
for (int j = 0; j < width; j++) {
if (i == 0 || j == 0 || i == height - 1 || j == width - 1) {
System.out.print(border);
} else {
System.out.print(fill);
}
}
System.out.println();
}
}
另见:Display squares of asterisks, filled and hollow, side by side