黑马程序员技术交流社区
标题:
(已解决)关于for循环问题
[打印本页]
作者:
胡卿
时间:
2012-6-7 22:56
标题:
(已解决)关于for循环问题
本帖最后由 胡卿 于 2012-6-8 21:44 编辑
class XunHuan
{
public static void main(String[] args)
{
int n,i,j;
n=5;
for (i=1;i<n;i++)
{
System.out.print(" ");
System.out.print(i);
}
for(j=n;j<2*n;j++)
{
for(i=n;i>0;i--)
{
System.out.print(" ");
System.out.print(i);
}
}
System.out.println();
}
}
为什么结果是:1 2 3 4 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1
而不是:1 2 3 4 5 4 3 2 1
作者:
包晗
时间:
2012-6-7 23:04
本帖最后由 包晗 于 2012-6-7 23:07 编辑
for(j=n;j<2*n;j++)
{
for(i=n;i>0;i--)
{
System.out.print(" ");
System.out.print(i);
}
复制代码
你的第一个循环 输出1-4
第2个开始输出
两层for循环嵌套。j=n;j<2*n;j++
n=5;n<10;j++ 这代表你要循环5次.(56789)
j=n;j<2*n;j++每循环一次
for(i=n;i>0;i--)
每一次都循环5次 输出54321
输出5个(54321)
作者:
杨天皓
时间:
2012-6-7 23:06
for (j = n; j < 2 * n; j++) {
for (i = n; i > 0; i--) {
System.out.print(" ");
System.out.print(i);
}
}
复制代码
你这段代码的内循环,控制打印5,4,3,2,1
你外循环控制次数,你循环打印了5次。
作者:
朝哥
时间:
2012-6-7 23:17
读代码:
第一个循环输出为
1 2 3 4
此时n还是等于5,第二次的嵌套循环输出为
5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1
加上前面的代码就是。
lz想到自己的输出结果,嵌套循环就不用了,
你得读代码,读懂了自然就会得到你想要的结果。
int n,i,j;
n=5;
for (i=1;i<n;i++)
{
System.out.print(" ");
System.out.print(i);
}
上面的for循环与下面的for循环没关系
for(i=5;i>0;i--)
{
System.out.print(" ");
System.out.print(i);
}
作者:
王杰
时间:
2012-6-7 23:21
for(j=n;j<2*n;j++)
{
for(i=n;i>0;i--)//这里循环嵌套了 不就是打印了五次1到5了吗?
{
System.out.print(" ");
System.out.print(i);
}
复制代码
作者:
杨天皓
时间:
2012-6-7 23:28
int num = 5;
for (int i = 0; i <= num;) {
System.out.println(++i);
if (i == num) {
for (int j = num; j > 0;) {
System.out.println(--j);
if (j == 1)
return;
}
}
}
复制代码
这个可以达到你要的效果
作者:
邵阳
时间:
2012-6-7 23:30
本帖最后由 邵阳 于 2012-6-7 23:39 编辑
class XunHuan
{
public static void main(String[] args)
{
int n,i,j;
n=5;
for (i=1;i<n;i++)
{
System.out.print(" ");
System.out.print(i);
}
//这是一个for循环,所以连续执行4次,输出1 2 3 4 直到i=5不满足i<n,跳出循环。执行下个程序
for(j=n;j<2*n;j++)
//楼主可改成for(j=n;j<=n;j++)可以输出1 2 3 4 5 4 3 2 1
{
for(i=n;i>0;i--)
{
System.out.print(" ");
System.out.print(i);
}
}
/*这是个标准的嵌套循环。第一个for是控制循环的次数,需要执行5次。第二个for里面的程序编译结果是5 4 3 2 1 当i=0时,不满足条件,跳出循环。然后再次执行第一个for,满足条件的话,执行第二个for里面的程序,再次输出5 4 3 2 1 。*/
System.out.println();
}
}
作者:
张棣
时间:
2012-6-8 11:34
本帖最后由 张棣 于 2012-6-8 14:56 编辑
楼主:我们要先搞明白,for循环的特点,和for循环嵌套的特点、
还要注意:代码从主函数依次阅读看懂、并且要明确每段代码所能完成的功能、
class XunHuan
{
public static void main(String[] args)
{
int n,i,j;
n=5;
for (i=1;i<n;i++)//
for 循环(一):
这个for循环结束打印输出:1 2 3 4
{
System.out.print(" ");
System.out.print(i);
}
for(j=n;j<2*n;j++)//
for 循环(二):
这是一个循环嵌套的for循环,嵌套下面的for循环、此循环会循环5次、
{
for(i=n;i>0;i--)/*
for 循环(三):
这个for循环结束打印输出: 5 4 3 2 1,
注意:
for 循环(三)
嵌套在
for 循环(二)
里,
for 循环(三)
结束后,
for 循环(二)
会继续循环,不会结束的。
for 循环(二)
每循环一次打印一次
for 循环(三)
的结果:5 4 3 2 1直到
for 循环(二)
循环5次后结束、
最后打印结果:
1 2 3 4
5 4 3 2 1
5 4 3 2 1
5 4 3 2 1
5 4 3 2 1
5 4 3 2 1
---------
-----------
-----------
------------
-----------
-----------
*/
{
System.out.print(" ");
System.out.print(i); //这两个输出可以写成:System.out.print(" "+i);
}
}
System.out.println();
}
}
为什么结果是:1 2 3 4 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1
而不是:1 2 3 4 5 4 3 2 1 //你这个结果是:
for 循环(三)结束后,你
没有继续思考
到执行for 循环(二),因为for 循环(二)没有结束、
重要的是楼主多把:语句的功能、语法、注意事项、思路等,
弄明白清楚就
OK
了
、
作者:
葛奎
时间:
2012-6-8 13:51
class Test3
{
public static void main(String[] args)
{
int n,i,j;
n=5;
for (i=1;i<n;i++)
{
System.out.print(" ");
System.out.print(i);
}//打印结果是: 1 2 3 4
for(j=n;j<2*n;j++)//j=5;j<10;j++ 这是大循环,循环了5次
{
for(i=n;i>0;i--)//i=5;i>0;i-- 这是小循环,也循环了5次
{
System.out.print(" ");
System.out.print(i);
}//小循环打印结果是: 5 4 3 2 1
}
//大循环打印了5次小循环的结果 也就是 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1
//所以最终结果加上上面打印的 1 2 3 4就是: 1 2 3 4 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5 4 3 2 1
System.out.println();
///你想要的结果是:1 2 3 4 5 4 3 2 1
//你没有必要写嵌套循环了,把上面的大循环去掉就行了,要里面的小循环就能得出你要的结果
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2