并列的内嵌for循环
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<=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:}
是在打印九九乘法表吧…… fanki 发表于 2013-6-14 18:09 static/image/common/back.gif
我对java不太熟,不过用都略懂一点。
这是代码注释:
感谢,还是鱼c这里人有爱! wwwxinyu1990 发表于 2013-6-15 07:56 static/image/common/back.gif
是在打印九九乘法表吧……
不是的。。九九乘法表正好是我习题大神能给个九九乘法表的java编程吗?{:5_92:}
感激不尽{:5_100:} 鱼cfans 发表于 2013-6-17 23:03 static/image/common/back.gif
不是的。。九九乘法表正好是我习题大神能给个九九乘法表的java编程吗?
感激不尽
直接给你代码不好,还是自己努力试试吧。还是用双层嵌套循环来做,先尝试下吧~ wwwxinyu1990 发表于 2013-6-18 08:52 static/image/common/back.gif
直接给你代码不好,还是自己努力试试吧。还是用双层嵌套循环来做,先尝试下吧~
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("");
}
}
这是写的代码 你看看那里不行。。求指教{:5_107:} 鱼cfans 发表于 2013-6-18 20:58 static/image/common/back.gif
public class jjcfb
{
public static void main(String args[])
循环条件对了,不出效果是你的循环体没有使用正确。System.out.print(i+"*"+j+"="+(i*j)+"\t");这样输出不就是表示几乘几等于几的效果吗?还有就是要注意代码的规范性(类名使用驼峰命名法,还有缩进)。 wwwxinyu1990 发表于 2013-6-18 22:00 static/image/common/back.gif
循环条件对了,不出效果是你的循环体没有使用正确。System.out.print(i+"*"+j+"="+(i*j)+"\t");这样输出不 ...
嗯 。。解决了
我还是很菜的。。小问题就请教你吧 鱼cfans 发表于 2013-6-19 16:41 static/image/common/back.gif
嗯 。。解决了
我还是很菜的。。小问题就请教你吧
呵呵……
页:
[1]