java中的绘画艺术 我想画一个正方形,它是一个轮廓,中间有一个点,大小在4到20之间。 ***** *...* *...* *...* *****
我很难使高度和长度相等。 这是我的密码,你能帮我吗。。谢谢java中的绘画艺术 我想画一个正方形,它是一个轮廓,中间有一个点,大小在4到20之间。 ***** *...* *...* *...* *****,java,Java,我很难使高度和长度相等。 这是我的密码,你能帮我吗。。谢谢 class Main { public static void printSquare( int size ) { if ( size >= 20 && size >= 4) { size = 4; } int squareLenght = size; int i = 1; int p = 1; if ( p <= size ) {
class Main
{
public static void printSquare( int size )
{
if ( size >= 20 && size >= 4)
{ size = 4; }
int squareLenght = size;
int i = 1;
int p = 1;
if ( p <= size )
{
int t = 1;
while ( t <= squareLenght )
{
System.out.print( "*" );
t = t + 1;
}
}
System.out.println(); // Newline
i = i + 1;
while ( i <= squareLenght )
{
int d = 1;
int s = 1;
if ( s < squareLenght );{
System.out.print( "*" );
s = s + 1;
}
while ( d < size-1 )
{
System.out.print( "." );
d = d + 1;
}
System.out.println( "*" );
i = i + 1;
}
if ( p <= size )
{
int t = 1;
while ( t <= squareLenght )
{
System.out.print( "*" );
t = t + 1;
}
}
System.out.println();
i = i + 1;
}
}
主类
{
公共静态空白打印正方形(整数大小)
{
如果(大小>=20和大小>=4)
{size=4;}
int SquareLength=尺寸;
int i=1;
int p=1;
如果(p问题是while循环中的一个条件
while ( i <= squareLenght )
while(i由于这一行,您在正文中(在边框之间)打印了太多行:
while(我有很多代码可以做你想做的;)
在不参加“代码混淆”竞赛的情况下,有几种方法可以缩短代码混淆
像这样:
public static void printSquare( int size ) {
final int n = Math.max( 4, Math.min(20, size) );
for (int y = 0; y < n; y++) {
for (int x = 0; x < n; x++) {
System.out.print( x == 0 || y == 0 || x == n - 1 || y == n - 1 ? "*" : "." );
}
System.out.println();
}
}
publicstaticvoidprintsquare(int-size){
final int n=Math.max(4,Math.min(20,size));
对于(int y=0;y 没有看过你的代码,但是你使用的是一个单字体的字体?昨天你没有做正方形部分吗?这可能是昨天任务的升级版本。这段时间他想要的是点而不是星号,当你说“正方形”的时候。,你的意思是相同数量的字符单元格,还是相同的实际大小?字符单元格的高度通常是宽度的两倍左右…11行行对于这样一件简单的事情来说确实是太多了;)@塞德里克·马丁:我的观点是,这比他拥有的要少得多。不管怎样,上面的大小检查/修改范围是2,重复打印('*',..)是2,
+println()
,中间大小=size-2;
,循环是5,打印('*'),重复打印('''.',..)
,println(“*”)
,然后再打印两个底部边框。您可以减少打印量,但这就是我上面描述的算法,更不用说不需要减少打印量。
if ( size >= 20 && size >= 4)
{ size = 4; }
if (size > 20) size = 20;
else if (size < 4) size = 4;
public static void printSquare( int size ) {
final int n = Math.max( 4, Math.min(20, size) );
for (int y = 0; y < n; y++) {
for (int x = 0; x < n; x++) {
System.out.print( x == 0 || y == 0 || x == n - 1 || y == n - 1 ? "*" : "." );
}
System.out.println();
}
}