Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用方法和循环绘制带星号的矩形_Java_Loops_Methods_Ascii Art - Fatal编程技术网

Java 使用方法和循环绘制带星号的矩形

Java 使用方法和循环绘制带星号的矩形,java,loops,methods,ascii-art,Java,Loops,Methods,Ascii Art,我一直在尝试创建一个如下所示的矩形: ***** * * ***** 或者这个: ************ * * ************ 取决于我输入的数字。我似乎做得不对。这就是我到目前为止所做的: import java.util.Scanner; 公共类绘图矩形{ 公共静态void main(字符串[]args){ 扫描仪键盘=新扫描仪(System.in); System.out.println(“输入长度大于1的整数”); int length=keybo

我一直在尝试创建一个如下所示的矩形:

*****
*   *
*****
或者这个:

************
*          *
************
取决于我输入的数字。我似乎做得不对。这就是我到目前为止所做的:

import java.util.Scanner;
公共类绘图矩形{
公共静态void main(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
System.out.println(“输入长度大于1的整数”);
int length=keyboard.nextInt();
int矩形=绘制矩形(长度);
系统输出打印(矩形);
}
公共静态int-draw_矩形(int m){

对于(intstar=2;star,您只需尝试创建一个方法来打印一个长度为N的矩形。 首先,这个方法不需要返回int,它可以是void。在主方法的末尾,您正在打印矩形,它的长度值相同

import java.util.Scanner;
公共类绘图矩形{
公共静态void main(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
System.out.println(“输入长度大于1的整数”);
int length=keyboard.nextInt();
绘制矩形(长度);
//这是矩形,但将打印
//输出用户输入的任何int
系统输出打印(长度);
}
公共静态空白绘制矩形(int m){
用于(int-star=0;star

您将注意矩形图形中的更改。第一行是m
*
s,下一行包含两个
*
m-2空格。下面的行与第一行类似。请注意,从0到m-1的循环将迭代m次。您应该将此消息发送到以获取更多帮助ul提示。

无法理解为什么要用2开始循环,或者中间的打印尝试做什么,但我会这样做:

for(int i=0;i
您可以创建一种打印矩形的方法,以及一种额外的打印正方形的方法,作为前一种方法的特例,其中宽度是正确显示高度的两倍

输出:

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

************
*          *
************
代码:

publicstaticvoidmain(字符串[]args){
printSquare(3,,“*”);
System.out.println();
打印矩形(3,12',','*');
}
publicstaticvoidprintsquare(整数大小、字符填充、字符边框){
打印矩形(大小,大小*2,填充,边框);
}
公共静态空白打印矩形(整数高度、整数宽度、字符填充、字符边框){
对于(int i=0;i


另请参见:

为什么以
2
开始两个循环?因为使用该程序的人必须输入大于1的长度。这不是一个很好的理由。请考虑需要打印的星星数。因此,您知道第一行上的星星数是作为长度输入的int数。因此矩形的长度为m和msTARS需要打印在第一行和最后一行中。只有2个需要打印在中间行中,其余的M-2字符在中间的那行是空白。
******
*    *
******

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