黑马程序员技术交流社区

标题: for 循环的嵌套使用 求大神知道 白话文 [打印本页]

作者: 李国峰    时间: 2015-8-31 22:28
标题: for 循环的嵌套使用 求大神知道 白话文
前天学的for循环  打印三角形  现在都OK了 但是现在关于for的嵌套使用  还是不理解  求指导  讲白话文    讲的明白些   谢谢
另外  还在积攒黑马币我也   给不了太多   所以...........




Snip20150830_5.png (119.83 KB, 下载次数: 117)

以这个为例 (今天敲的)但是不给力啊

以这个为例 (今天敲的)但是不给力啊

作者: lishuai881512    时间: 2015-8-31 22:28
其实 你就记住一个结论 就都OK 啦  就是  尖向上改变内循环的条件 让它小于等于外循环的变量  尖向上的话就改变内循环的 变量  让它等于 外循环+1
for (int i = 0; i <5; i++){
//向下三角形
    for(int j = i+1; j<5; j++){
       System.out.print(" ");
}
//向上三角形
   for(int k = 0; k <=i; k++){
     System.out.print("*");
}
  System.out.println();
}
作者: XLX    时间: 2015-8-31 23:07
本帖最后由 XLX 于 2015-8-31 23:39 编辑

//打印倒三角形
//*******
//-*****
//--***
//---*
int main(){
   
    for (int i = 0; i<4; i++) {
        for (int j = 0; j < i; j++) {
            printf(" ");
            
        }
        for (int k = 1; k<=7-2*i; k++) {
            printf("*");
        }
        printf("\n");
    }
   
    return 0;
}转载一个大神的回复给你参考一下


作者: XLX    时间: 2015-8-31 23:40
不过他打的是倒三角,应该是内层的for回圈改改就好了

作者: 清明月雨上    时间: 2015-9-1 12:39
外层循环就像翻书的,每一页,内层循环像每一页的每一行字 冯佳老师这句话说的非常好,一起理解一下吧
作者: 董兴朋    时间: 2015-9-1 15:54
其实for循坏就是像在“堆积木”一样,比如你打印的三角形,首先你要确定打印几层,每一层打印几个符号,然后用什么符号来分隔开,让你打印出来的符号具有形状,关键还是在于你的思路,思路清晰就不容易混乱了。不知道管不管用,实在不行就在纸上画出来想想。希望能帮上你。
作者: a4903913    时间: 2015-9-1 17:57
for(int i = 0; i < 10; i ++){
   //循环体
}
程序首先进来执行 int i = 0;(这个在整个循环中只执行一次)
然后判断 i < 10 ; 满足之后 执行 循环体!!!
循环体执行完毕之后(如果没有break)则会执行 i++ 相当于 i = i + 1;然后会再去判断 i < 10
纯手打 ,望采纳

作者: backin    时间: 2015-9-1 20:05
循环控制呢就像搭积木一样正的就是++要倒过来就是--,要想达到预定的排列,先看哪部分是在循环,没有循环的部分肯定是特例,怎么办呢?if出来就行了撒。比如你要想的那个效果从第二行起就是正常的三角,对你来说肯定没问题,第一行不就是特别的例子吗?怎么办?if(i=0)不循环,直接打印嘛。{:2_40:}循环还是很考验逻辑思维能力的。可以多去找点数学上的问题通过Java代码来实现~~{:2_40:}
作者: BlackHorse001    时间: 2015-9-2 08:36
for循环设计要考虑好内外循环控制的是你要解决问题的哪些增量,就比如说打印三角,先要想好在屏幕上打印三角,肯定有空格的地方,有输出“*”号的地方,通过观察,发现其中的数字数学变化规律,并将这个规律带入到循环中,看看内循环每次要怎么变外循环要怎么变,再设计一下增量的初始值,就Ok了!
纯手打,这是原理思想,我也是努力赚分中,希望给我吧
作者: 七爷上课前    时间: 2015-9-2 15:16
你先打印个九九乘法表再说,理解应该从简单到复杂
作者: llo    时间: 2015-9-2 18:36
你哪个地方有问题就在那个范围内   打上断点   执行看     看那个地方不懂 就多看几次它的执行步骤就可以了      这个还是靠自己理解比较好  
作者: 西域男孩刚    时间: 2015-9-2 21:04
先打印空格,再打印*,主要是思路。
作者: MilesMatheson    时间: 2015-9-2 22:03
首先你得知道for循环是怎么执行的,当代码进入外层for 之后,如果进入内层for那就把内层for执行完,然后再出来,判断外层for的条件是否还满足,如果还满足,那继续进入;知道外层for条件不满足,才离开
作者: 坏寒    时间: 2015-9-3 15:45
啊啊啊啊 来拿黑马币
作者: 残影    时间: 2015-9-3 22:40
想打那样的,就是要内循环要两个for循环咯,一个是空格,一个是星。  我觉得你应该都理解的,只是一下换不过来。。外循环控制行数,内循环控制每行的个数。。所以里面的内循环两个,先是空格,然后星星。
作者: 球球_    时间: 2015-9-4 00:02
多练习一下答应三角形和倒立三角形,还有九九乘法表,理解外层控制行,内层控制列
作者: 一笑过千山    时间: 2015-9-4 10:26
我是进来学习的
作者: xinpuyuandu    时间: 2015-9-4 10:41
这种东西都是看个人的理解方法,大神很多,解释很多,,选择属于自己的方法很重要。
作者: sansu    时间: 2015-9-5 11:44
http://v.youku.com/v_show/id_XOTUwNjcxNjgw.html?from=s1.8-1-1.2   话不多说,解决办法及思路这里都有
作者: sansu    时间: 2015-9-5 11:57
public static void main(String[] args){
                for(int k=0;k<5;k++){
                        for(int i=0;i<9-k;i++) System.out.print(" ");
                        for(int i=0;i<k+1;i++) System.out.print("*");
                    System.out.println();
        }
}
作者: purgatory    时间: 2015-9-6 15:15
就像小明有三个女朋友,她们都发现了彼此的存在,准备排队每人扇小明三十耳光,三十耳光就是内循环,三个女朋友就是外循环,扇完了三十耳光才换人
作者: 李国峰    时间: 2015-9-6 20:58
purgatory 发表于 2015-9-6 15:15
就像小明有三个女朋友,她们都发现了彼此的存在,准备排队每人扇小明三十耳光,三十耳光就是内循环,三个女朋友 ...

大神啊   瞬间脑补   
作者: 些许    时间: 2015-9-7 21:22
形象的理解就是  外层for循环就是控制横坐标纵坐标(行数)    内层for循环控制纵坐标 (每列)
你要一步一步去分析   当行确定了   内层for循环(变量每增加1)就向右走一步 判断满足条件的就打印

作者: 些许    时间: 2015-9-7 21:23
打错了  不好意思
形象的理解就是  外层for循环就是控制纵坐标(行数)    内层for循环控制横坐标 (每列)
你要一步一步去分析   当行确定了   内层for循环(变量每增加1)就向右走一步 判断满足条件的就打印
作者: 思考的戏    时间: 2015-10-14 11:51
清明月雨上 发表于 2015-9-1 12:39
外层循环就像翻书的,每一页,内层循环像每一页的每一行字 冯佳老师这句话说的非常好,一起理解一下吧 ...

学习了,特别好的理解
作者: 思考的戏    时间: 2015-10-14 11:52
外层套里层,外层是 i,里层是 j,先控制 i,在 i 里面控制 j




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2