鱼C论坛

 找回密码
 立即注册
查看: 3237|回复: 9

并列的内嵌for循环

[复制链接]
发表于 2013-6-14 18:09:22 | 显示全部楼层 |阅读模式
5鱼币
public class c3_16
{
public static void main(String[] args)
{
for (int i=1;i<=10;i++)//外层for循环
{
for(int j=1;j<=11-i;j++;) //内嵌循环
  System.out.print("")//内嵌for循环的循环体
for(int j=1;j<=i;j++)//并列的内嵌for循环
{ if(i>=10)             System.out.print(+i+"");
else                        System.out.print(+i+"");
}
System.out.println("");
}
}
}
小弟刚开始学java,上程序的运行结果已经知道了,这个并列内嵌循环实在不明白,到底是怎么实现的,百度过一些资料,内嵌先执行内部循环,后面就完全摸不着头脑了。求教!:'(

最佳答案

查看完整内容

我对java不太熟,不过用都略懂一点。 这是代码注释: public class c3_16 { public static void main(String[] args) { for (int i=1;i
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-14 18:09:23 | 显示全部楼层
我对java不太熟,不过用都略懂一点。
这是代码注释:

public class c3_16
{
        public static void main(String[] args)
        {
                for (int i=1;i<=10;i++)                        //外层for循环
                {
                        //1.  一开始i = 1进去执行
                        //2.  j = 1 到 j = 10一直打印空格(即十个空格)
                        for(int j=1;j<=11-i;j++;)        //内嵌循环
                                System.out.print("");        //内嵌for循环的循环体
                        //3.  再j = 1开始,因为i = 1,j只做一次
                        for(int j=1;j<=i;j++)                //并列的内嵌for循环
                        {
                                //4.  无聊如何都打印i的值和空格。
                                if(i>=10)            
                                        System.out.print(+i+"");
                                else                        
                                        System.out.print(+i+"");
                        }
                        //5.  再打一个换行
                        System.out.println("");
                        //做完换行后,i++,i = 2还是小于10,进行第二次循环,从上面的1.开始,i的值变了,代进去就知道。
                        //一直循环以上操作直到i>10
                }
        }
}

伪代码:
//第一个for,i控制行数
for ( int i = 1; i <= 10; i++ )
{
        //控制打出的空格数,逐个减少,一开始10个,没行减少一个。
        for(int j = 1; j <= 11 - i; j++ )       
        //控制打出多少个 数字,每行应该打印i个数,就是第n行就打印n个数
        for( j = 1; j <= i; j++ )
        //换行
        printf( "\n" );
}



第一个for包括第二个for和第三个for,第二个for和第三个for系分开的,做完第二个for,再执行第三个for。

我用C语言写了一下,其实都差不多,你看看:
#include "stdio.h"
int main(int argc, char* argv[])
{
        //第一个for,i控制行数
        for ( int i = 1; i <= 10; i++ )                                                //外层for循环
        {
                //控制打出的空格数,逐个减少,一开始10个,没行减少一个。
                for(int j = 1; j <= 11 - i; j++ )                                        //内嵌循环
                        printf(" ");                                                        //内嵌for循环的循环体
                //控制打出多少个 数字,每行应该打印i个数,就是第n行就打印n个数
                for( j = 1; j <= i; j++ )                                                //并列的内嵌for循环
                {
                        if( i >= 10 )            
                                printf( "%d ", i );                                     //等于打印函数
                        else                    
                                printf( "%d ", i );
                }
                //换行
                printf( "\n" );
        }
        return 0;
}


希望能帮到你。一起学习,加油加油!!{:7_155:}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-15 07:56:23 From FishC Mobile | 显示全部楼层
是在打印九九乘法表吧……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-6-17 23:01:10 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-6-17 23:03:22 | 显示全部楼层
wwwxinyu1990 发表于 2013-6-15 07:56
是在打印九九乘法表吧……

不是的。。九九乘法表正好是我习题  大神能给个九九乘法表的java编程吗?
感激不尽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-18 08:52:30 | 显示全部楼层
鱼cfans 发表于 2013-6-17 23:03
不是的。。九九乘法表正好是我习题  大神能给个九九乘法表的java编程吗?
感激不尽

直接给你代码不好,还是自己努力试试吧。还是用双层嵌套循环来做,先尝试下吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-6-18 20:58:09 | 显示全部楼层
wwwxinyu1990 发表于 2013-6-18 08:52
直接给你代码不好,还是自己努力试试吧。还是用双层嵌套循环来做,先尝试下吧~

public class jjcfb
{
        public static void main(String args[])
        {
                int i,c;
        for(i=1;i<=9;i++)
        {for(int j=1;j<=i;j++)
         c=i*j;
        System.out.print(c);       
        }
        System.out.println("");
        }

}
这是写的代码 你看看那里不行。。求指教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-18 22:00:25 | 显示全部楼层
鱼cfans 发表于 2013-6-18 20:58
public class jjcfb
{
        public static void main(String args[])

循环条件对了,不出效果是你的循环体没有使用正确。System.out.print(i+"*"+j+"="+(i*j)+"\t");这样输出不就是表示几乘几等于几的效果吗?还有就是要注意代码的规范性(类名使用驼峰命名法,还有缩进)。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-6-19 16:41:28 | 显示全部楼层
wwwxinyu1990 发表于 2013-6-18 22:00
循环条件对了,不出效果是你的循环体没有使用正确。System.out.print(i+"*"+j+"="+(i*j)+"\t");这样输出不 ...

嗯 。。解决了  
我还是很菜的。。小问题就请教你吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-6-19 16:56:29 | 显示全部楼层
鱼cfans 发表于 2013-6-19 16:41
嗯 。。解决了  
我还是很菜的。。小问题就请教你吧

  呵呵……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 01:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表