求助!各位大神,请帮忙优化下

zafy001 2012-03-27 04:53:07
本人是新学JAVA SE的新手,才学习三天
我自己写了一个有控制面板画出三角形,
代码如下:
class day03
{
public static void main(String[] args)
{
for (int a=0;a<=6 ;a++ )
{
for (int b=a; b<=5;b++ )
{
System.out.print(" ");
}
for (int c=0;c<=a ;c++ )
{
System.out.print("*");
}
for (int d=1;d<=a ;d++ )
{
System.out.print("*");
}
for (int e=a;e<=5;e++ )
{
System.out.print(" ");
}
System.out.println();
}
}
}

我想请各位大神帮忙优化下,我觉得for用得太多了,有其他办法完成没有,谢谢各位。
...全文
86 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
菖蒲老先生 2012-03-27
  • 打赏
  • 举报
回复
你这三层for循环,比楼主的复杂度还高了。。。。。。

[Quote=引用 2 楼 sparadise1003 的回复:]

随手写了一个,希望对你有帮助
Java code

public static void main(String[] args)
{
int col = 6 ;
for( int i=1 ; i<=7 ;i++ )
{
for( int j=0 ; j<=6 ; j++ )
{
……
[/Quote]
菖蒲老先生 2012-03-27
  • 打赏
  • 举报
回复

class day03 {
public static void main(String[] args) {
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 6 - i; j++) {
System.out.print(" ");
}
for (int j = 0; j < i * 2 + 1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
sparadise1003 2012-03-27
  • 打赏
  • 举报
回复
随手写了一个,希望对你有帮助

public static void main(String[] args)
{
int col = 6 ;
for( int i=1 ; i<=7 ;i++ )
{
for( int j=0 ; j<=6 ; j++ )
{
if( j==col )
{
for( int n=1 ; n<= 2*i-1 ; n++)
System.out.print( "*" );
System.out.println( );
break;
}
else
System.out.print( " " );
}

col--;

}

}
sdojqy1122 2012-03-27
  • 打赏
  • 举报
回复


public class day03
{
public static void main(String[] args)
{
for (int a=0;a<=6 ;a++ ){
for (int b=a; b<=5;b++ )
{
System.out.print(" ");
}
for (int c=0;c<(2*a + 1) ;c++ )
{
System.out.print("*");
}
// for (int d=1;d<=a ;d++ ) //多余代码
// {
// System.out.print("*");
// }
System.out.println();
}
}
}

这位大神啊,像这种题目跳过去就可以了,多学学运用,画画三角形貌似没什么用,你上面多用了很多代码,其实我并没有优化什么,只是代码简洁了一些,你觉得呢?
sdojqy1122 2012-03-27
  • 打赏
  • 举报
回复
没有事,我也只是随便说说,如果觉得在循环方面有困难,可以多研究研究。
zafy001 2012-03-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sdojqy1122 的回复:]



public class day03
{
public static void main(String[] args)
{
for (int a=0;a<=6 ;a++ ){
for (int b=a; b<=5;b++ )
{
System.out.print(" ");
}
for (int c=0;c<(2*a + 1) ;c……
[/Quote]
谢谢,对我非常有用,我就是自己没找到判断语句的使用方法,学习了~

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧