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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1黑马币
前天学的for循环  打印三角形  现在都OK了 但是现在关于for的嵌套使用  还是不理解  求指导  讲白话文    讲的明白些   谢谢
另外  还在积攒黑马币我也   给不了太多   所以...........




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

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

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

最佳答案

查看完整内容

其实 你就记住一个结论 就都OK 啦 就是 尖向上改变内循环的条件 让它小于等于外循环的变量 尖向上的话就改变内循环的 变量 让它等于 外循环+1 for (int i = 0; i

26 个回复

倒序浏览
其实 你就记住一个结论 就都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: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;
}转载一个大神的回复给你参考一下

回复 使用道具 举报
不过他打的是倒三角,应该是内层的for回圈改改就好了
回复 使用道具 举报
外层循环就像翻书的,每一页,内层循环像每一页的每一行字 冯佳老师这句话说的非常好,一起理解一下吧

点评

精辟  发表于 2015-9-5 09:22
回复 使用道具 举报
其实for循坏就是像在“堆积木”一样,比如你打印的三角形,首先你要确定打印几层,每一层打印几个符号,然后用什么符号来分隔开,让你打印出来的符号具有形状,关键还是在于你的思路,思路清晰就不容易混乱了。不知道管不管用,实在不行就在纸上画出来想想。希望能帮上你。
回复 使用道具 举报
for(int i = 0; i < 10; i ++){
   //循环体
}
程序首先进来执行 int i = 0;(这个在整个循环中只执行一次)
然后判断 i < 10 ; 满足之后 执行 循环体!!!
循环体执行完毕之后(如果没有break)则会执行 i++ 相当于 i = i + 1;然后会再去判断 i < 10
纯手打 ,望采纳
回复 使用道具 举报
循环控制呢就像搭积木一样正的就是++要倒过来就是--,要想达到预定的排列,先看哪部分是在循环,没有循环的部分肯定是特例,怎么办呢?if出来就行了撒。比如你要想的那个效果从第二行起就是正常的三角,对你来说肯定没问题,第一行不就是特别的例子吗?怎么办?if(i=0)不循环,直接打印嘛。{:2_40:}循环还是很考验逻辑思维能力的。可以多去找点数学上的问题通过Java代码来实现~~{:2_40:}
回复 使用道具 举报
for循环设计要考虑好内外循环控制的是你要解决问题的哪些增量,就比如说打印三角,先要想好在屏幕上打印三角,肯定有空格的地方,有输出“*”号的地方,通过观察,发现其中的数字数学变化规律,并将这个规律带入到循环中,看看内循环每次要怎么变外循环要怎么变,再设计一下增量的初始值,就Ok了!
纯手打,这是原理思想,我也是努力赚分中,希望给我吧
回复 使用道具 举报
你先打印个九九乘法表再说,理解应该从简单到复杂
回复 使用道具 举报
llo 中级黑马 2015-9-2 18:36:43
11#
你哪个地方有问题就在那个范围内   打上断点   执行看     看那个地方不懂 就多看几次它的执行步骤就可以了      这个还是靠自己理解比较好  
回复 使用道具 举报
先打印空格,再打印*,主要是思路。
回复 使用道具 举报
首先你得知道for循环是怎么执行的,当代码进入外层for 之后,如果进入内层for那就把内层for执行完,然后再出来,判断外层for的条件是否还满足,如果还满足,那继续进入;知道外层for条件不满足,才离开
回复 使用道具 举报
啊啊啊啊 来拿黑马币
回复 使用道具 举报
想打那样的,就是要内循环要两个for循环咯,一个是空格,一个是星。  我觉得你应该都理解的,只是一下换不过来。。外循环控制行数,内循环控制每行的个数。。所以里面的内循环两个,先是空格,然后星星。
回复 使用道具 举报
多练习一下答应三角形和倒立三角形,还有九九乘法表,理解外层控制行,内层控制列
回复 使用道具 举报
我是进来学习的
回复 使用道具 举报
这种东西都是看个人的理解方法,大神很多,解释很多,,选择属于自己的方法很重要。
回复 使用道具 举报
http://v.youku.com/v_show/id_XOTUwNjcxNjgw.html?from=s1.8-1-1.2   话不多说,解决办法及思路这里都有
回复 使用道具 举报
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();
        }
}
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马