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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 石欣欣 黑马帝   /  2011-8-31 22:41  /  1640 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Demo
{
        public static void main(String[] args)
        {
                for(int x=0;x<5;++x)
                {
                        int z=4
                        for(int y=z;y<5;++y)
                        {
                        System.out.print("*");
                        }
                        --z;
                        System.out.println();
                }
               
        }
}

打印结果是
*
*
*
*
*
为什么不是
*
**
***
****
*****


求解答??????

5 个回复

倒序浏览
黑马网友  发表于 2011-8-31 23:05:32
沙发

还是 打印5行5列*的问题 郁闷了

class Demo
{
        public static void main(String[] args)
        {
        for(int x =0;x<5;++x)
        {      
                 int z=0;        //定义个变量z使其控制*的递减
                for(int y=z;y<5;++y)     //y=z使二者连接起来,
                {
                        System.out.print("*");
                }
                z++;
                System.out.println();
        }
        }
}
/* *****
   ****
   ***
   **
   *
*/
//为什么打印不出来
*****
****
***
**
*
而是
*****
*****
*****
*****
*****
回复 使用道具 举报
int z=4放在第一重循环里,每次执行循环时都将z从新赋值为4,当然每行就只能打印一个*了。
将in z=4放在循环的外面:
.........
int z=4
for(int x=0;x<5;++x)
.........
这样试一下
回复 使用道具 举报
黑马网友  发表于 2011-8-31 23:09:23
板凳
第二个和第一个问题是一样的,int z的位置放错了
回复 使用道具 举报
黑马网友  发表于 2011-9-1 09:23:49
报纸
内循环里面
int z= 4;
for(int y=z;y<5;++y)
4小于5 只能执行一次 所以内循环只能打印出一个*
外循环for(int x=0;x<5;++x)
执行5次 每次执行内循环 而由于内循环每次只打印一个* 所以就每行只有一个*
回复 使用道具 举报
黑马网友  发表于 2011-9-1 21:03:09
地板
class Demo
{
        public static void main(String[] args)
        {
        for(int x =0;x<5;++x)
        {      
                 int z=0;        //这个Z的值在你每次进入x的for循环时都自动重新赋值为0,也就是说你每一行要打印的“*”都是4个*;你要是想打印出递减的效果,你Z的初始化赋值应该放在for循环的外面。
                for(int y=z;y<5;++y)                   {
                        System.out.print("*");
                }
                z++; //要是你的Z初始化在x的for循环里面,你的这个语句是多余的,原因在上面已经说明了,每次进入循环都会被重新赋值。
                System.out.println();
        }
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马