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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 陈永赛 于 2014-9-4 16:41 编辑

                                          

ps:小菜鸟希望给位解救一下;很郁闷呀···在这里就卡住啦


上面的一张图片的代码是让“*”反过来,从少到多排序,下面的图片是毕老师的视频教程;

12 个回复

倒序浏览
以后还是贴源码吧,这样看不清楚
回复 使用道具 举报
外层循环数变小,内曾循环次数增加,以下是我用的方便,楼主可以看看       
for (int k =6; k>1;k--)
                {
                        for (int a = 1;a<8-k;a++)
                        {
                                System.out.print("*");
                        }
                        System.out.println();
                }
回复 使用道具 举报
外层循环控制行数,内层循环控制列数
我一般都把这种图形题目,写成如下格式,然后再算规律
for(int i=1;i<=行数;i++){

for(int j=1;j<=列数;j++){
   打印的东西
}
换行输出
}
回复 使用道具 举报 1 0
你写的没问题呀
回复 使用道具 举报
你横线下面的循环条件有问题:

这是你的代码:
for(int x=0; x<5; x++)
{
     for(int y=0; y<=x; y++)
     {
          s.o. print("*");
     }
s.o.prinln();
}

看我给你读一遍:
首先建立外循环 ,初始化X=0,条件表达式x<5; x自增;

然后条件满足建立内循环;初始化y=0,条件表达式y<=x;(问题就在这里;)
y自增;
后面的语句都没有问题;

但你在纸上运行一次就知道了——————

第一次:
x=0;
y<=0;
y++;
y=1;
打印一次*;
这时y<=x;条件不满足;跳出内循环然后换行;

所以到这里你一直在内循环只打印了一个* ,然后条件就不满足了,
所以就跳出内循环然后重新开始外循环;

所以你打印的图像会是这样:
*
*
*
*
*
回复 使用道具 举报
密密麻麻的,看的眼睛都花了,发源码不行么同学?
回复 使用道具 举报
新新人类嘿嘿嘿 发表于 2014-9-4 16:03
外层循环控制行数,内层循环控制列数
我一般都把这种图形题目,写成如下格式,然后再算规律
for(int i=1;i ...

不好意思,我已经解决代码问题了,是我不够细心所造成;
for (int x= 0; x<5; x++)
                {
                        for (int y = 0; y<=5; y++);
                        {
                                System.out.print("*");
                        }
                        System.out.println("hello");
                }
我上面的内嵌套for语句后面多加了";"号,所以导致内嵌套执行语句直接转换成构造代码块。
所以打印出来的结果变成这样:
*
*
*
*
*
去掉“;”号后,打印出来结果终于是这样啦:
*
**
***
****
*****
谢谢指导。
回复 使用道具 举报
风声相伴 发表于 2014-9-4 16:01
外层循环数变小,内曾循环次数增加,以下是我用的方便,楼主可以看看       
for (int k =6; k>1;k--)
                {

不好意思,我已经解决代码问题了,是我不够细心所造成;
for (int x= 0; x<5; x++)
                {
                        for (int y = 0; y<=5; y++);
                        {
                                System.out.print("*");
                        }
                        System.out.println("hello");
                }
我上面的内嵌套for语句后面多加了";"号,所以导致内嵌套执行语句直接转换成构造代码块。
所以打印出来的结果变成这样:
*
*
*
*
*
去掉“;”号后,打印出来结果终于是这样啦:
*
**
***
****
*****
谢谢指导。
回复 使用道具 举报
马嘉 发表于 2014-9-4 16:21
你写的没问题呀

不好意思,我已经解决代码问题了,是我不够细心所造成;
for (int x= 0; x<5; x++)
                {
                        for (int y = 0; y<=5; y++);
                        {
                                System.out.print("*");
                        }
                        System.out.println("hello");
                }
我上面的内嵌套for语句后面多加了";"号,所以导致内嵌套执行语句直接转换成构造代码块。
所以打印出来的结果变成这样:
*
*
*
*
*
去掉“;”号后,打印出来结果终于是这样啦:
*
**
***
****
*****
谢谢指导。
回复 使用道具 举报
潘多拉 发表于 2014-9-4 16:50
密密麻麻的,看的眼睛都花了,发源码不行么同学?

很少发帖,下次注意,一定发代码,不发图片
不好意思,我已经解决代码问题了,是我不够细心所造成;
for (int x= 0; x<5; x++)
                {
                        for (int y = 0; y<=5; y++);
                        {
                                System.out.print("*");
                        }
                        System.out.println("hello");
                }
我上面的内嵌套for语句后面多加了";"号,所以导致内嵌套执行语句直接转换成构造代码块。
所以打印出来的结果变成这样:
*
*
*
*
*
去掉“;”号后,打印出来结果终于是这样啦:
*
**
***
****
*****
谢谢指导。
回复 使用道具 举报
看不清!!!
回复 使用道具 举报
孙雯 来自手机 中级黑马 2014-9-4 23:19:12
13#
陈永赛 发表于 2014-9-4 16:55
很少发帖,下次注意,一定发代码,不发图片
不好意思,我已经解决代码问题了,是我不够细心所造成;
for  ...

也感谢你找到了原因,我看了半天都在想是对的啊,为什么打印的不对。原来错误在这儿~果然认真仔细神马的都得有啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马