A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴光新 黑马帝   /  2013-5-23 23:14  /  2191 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Jiewin 于 2013-5-23 23:15 编辑

//问题1:这段代码我都练习N多遍了,都能自己在白纸上写出来了,就是不知道他们的意思麻烦知道的解释下,谢谢

/*
    *
   * *
  * * *
* * * *
* * * * *
*/

class  Noname16
{
public static void main(String[] args)
{
  for (int x=0;x<5 ;x++ )   //外循环:是控制列的循环数吗?   
  {                                       
   for (int y=x;y<4 ;y++ )  //内循环:是控制行的循环数吗?
   {
    System.out.print(" ");
   }
   for (int z=0;z<=x ;z++ )
   {
    System.out.print("* ");
   }
   System.out.println();
  }
}
}

点评

加油  发表于 2013-5-23 23:56

评分

参与人数 1技术分 +1 收起 理由
HM汪磊 + 1

查看全部评分

9 个回复

倒序浏览
class  Noname16
{
public static void main(String[] args)
{
   for (int x=0;x<5 ;x++ )   //外循环:是控制行数的,0    1  2   3   4     共5行   
  {                                       
           for (int y=x;y<4 ;y++ )  //内循环:是控制每行的空格的个数的
       {
                   System.out.print("-");
           }
           for (int z=0;z<=x ;z++ )//这个是控制内循环中*号的个数
           {
                  System.out.print("* ");
           }
    System.out.println();         //打完一行的空格和*号,换一行
   }
}

上面的图形是有规律的,第一行*的左边有4个空格,第二行有3个空格,行数增加一行,空格就减少一个,但是*会增加一个。把空格换成“—”打印出来给你看一下!!

图形.png (573 Bytes, 下载次数: 0)

图形.png

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 淡定

查看全部评分

回复 使用道具 举报
  1. class JinZiTa
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 for (int x=1;x<=5;x++)
  6.                 {
  7.                         for (int y=x;y<=5;y++)
  8.                         {
  9.                                 System.out.print(" ");
  10.                         }
  11.                         for (int y=1;y<=x;y++)
  12.                         {
  13.                                 System.out.print("* ");
  14.                         }
  15.                         System.out.println();
  16.                 }       
  17.         }
  18. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 山寨

查看全部评分

回复 使用道具 举报
本帖最后由 Sofoul 于 2013-5-24 00:04 编辑

class StringDemo
{
  public static void main(String[] args)
  {
  for(int x=0;x<5;x++)//外循环控制行数
   {
   for (int y=x;y<5 ;y++ )//内循环控制列数,每行有几个数。
   {
    System.out.print(" ");//三角形前面的空格打出来
   }
   
   for(int z=0;z<x;z++)//开始打印三角形
    {
    System.out.print("* ");
    }
    System.out.println();
   }
  }
}

评分

参与人数 1技术分 +2 收起 理由
袁梦希 + 2 很给力!

查看全部评分

回复 使用道具 举报

class  Noname16
{
public static void main(String[] args)
{
   for (int x=0;x<5 ;x++ )   //外循环,控制行数,一共执行五次   
  {                                       
           for (int y=x;y<4 ;y++ )  //内循环,控制每行的空格数,y的值开始为0,随着x的增加,y的值也在增加,因此打印出的空格数会越来越少
       {
                   System.out.print(" ");//打印空格
           }
           for (int z=0;z<=x ;z++ )//另一个内循环,随着x的增加,打印出的*号会越来越多(从1个渐增到5个)
           {
                  System.out.print("* ");//打印*
           }
    System.out.println();         //每打印完一行就行,受外层循环的控制
   }
}
记住一点:外层循环控制行数,内层循环控制列数。
回复 使用道具 举报
  1. class Test {
  2.         public static void main(String[] args) {
  3.                 for (int x = 0; x < 5; x++){//控制行数,一共5行
  4.                         for (int y = x; y < 4; y++){//控制需要打印的空格数,打印4-y个空格
  5.                                 System.out.print(" ");
  6.                         }
  7.                         for (int z = 0; z <= x; z++) {//打印* ,第一行打1个,第二行打2个,类推;
  8.                                 System.out.print("* ");
  9.                         }
  10.                         System.out.println();//一行打完,换行
  11.                 }
  12.         }
  13. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
Sofoul 发表于 2013-5-23 23:49
class StringDemo
{
  public static void main(String[] args)


最好把代码放到相应的区域,如果不知道怎么放请看我的个性签名,点击红色的字体
回复 使用道具 举报
陈潜 发表于 2013-5-24 01:20

加油
回复 使用道具 举报

首先,楼主能记下这段代码的决心真的很令人钦佩,但是都记下代码了还没有理解代码的这种学习方法确实不可取,我们要做的是理解了代码,然后自己敲出来,没有理解就不要去死记,那样会浪费很多时间,下面来逐一解释一下代码吧
这个输出的结果貌似
/*
    *
   * *
  * * *
* * * *
* * * * *
*/

class  Noname16
{
public static void main(String[] args)
{
  for (int x=0;x<5 ;x++ )   //外循环:控制5行
  {                                       
   for (int y=x;y<4 ;y++ )  //内循环:控制每行里边前4-x列的输出值
   {
    System.out.print(" ");
   }
   for (int z=0;z<=x ;z++ )//内循环:控制每行里边后x+1列的输出值
   {
    System.out.print("* ");
   }
   System.out.println();//结束一行,进入下一行,执行到这里会执行x++,再进入循环,println()相当于回车键
  }
}
}
回复 使用道具 举报
  1. class  Noname16
  2. {
  3.      public static void main(String[] args)
  4. {
  5.      for (int x=0;x<5 ;x++ )     //外循环:外循环控制行
  6.      {                                       
  7.         for (int y=x;y<4 ;y++ )  //内循环:内循环控制的每行的个数
  8.         {
  9.           System.out.print(" ");
  10.         }
  11.         for (int z=0;z<=x ;z++ )
  12.         {
  13.           System.out.print("* ");
  14.         }
  15.       System.out.println();
  16.    }
  17. }
  18. }
复制代码
楼主不理解的话  你就记住先从一行的循环开始写 比如你第一行打印5个*用一个for循环就搞定了吧,到第二行需要打印4个*时,又一个for循环搞定了,以此类推  最后打印完总共写了5遍for循环  写5遍多麻烦 是不是就可以把5遍for循环写成一个循环5次的for,再把打印*号的循环嵌套进去不就成了,内层循环控制个数,外层循环控制内层循环的个数
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马