黑马程序员技术交流社区

标题: 流程控制语句总结 [打印本页]

作者: Animal    时间: 2015-6-3 22:27
标题: 流程控制语句总结
循环:
        概述:就是重复做同样的一件事情。
        组成:
                初始化条件:看从什么时候开始循环。一般定义的是一个变量。
                判断条件:看在什么情况下才执行循环。
                控制条件:控制初始化条件的改变的。(控制变量的变化的)
                循环体:要重复做的事情。
        分类:
                for:
                        格式:
                                for(初始化条件1;判断条件2;控制条件3)
                                {
                                        循环体4;
                                }
        执行顺序:
                先走初始化条件,然后走判断条件,
                        如果结果为true,然后走循环体,然后控制条件,然后走判断条件。
                        如果结果是false,for循环结束。
                第一次;
                        1,2(true),4,3
                第二次:
                        2,4,3。。。。
                作业:
                        把1-10之间的整数依次打印。
                        for(int x =1;x<=10;x++)
                        {
                                System.out.println(x);
                        }
                改需求:
                        求1-10之间的所有整数和。
                        思路:
                                1、应该获取到1-10之间的所有整数。用for可以实现。
                                2、在for循环上边,定义一个统计变量记录他们的累加和。
                        int sum = 0;
                        for(int x =1;x<=10;x++)
                        {
                       
                                sum = sum + x;
                                //sum+=x;
                        }
                        System.out.println(sum);

什么时候定义变量?
        当一个值是不断发生变化的时候。
怎么定义?
        先在小范围内定义,如果不合适,就在大范围内定义。
定义变量的注意事项;
        1、先在小范围内定义,然后在大范围内定义,可以的。
                因为小范围内的代码执行完毕后,小范围内的变量被内存给释放掉了。
        2、先在大范围内定义,然后在小范围定义,不可以?
                因为大范围内的变量没有被内存给释放掉。
                while
                        格式:
                                初始化条件;
                                while(判断条件)
                                {                                       
                                        循环体;
                                        控制条件;
                                }
                        注意:在某些情况下,while循环是可以和for循环互换的。
                                什么时候用for,什么时候用while?
                                        当范围明确的时候,用for。效率高。
                                        当范围不明确的时候,最好用while。
                                练习题:
                                        求1-100之间的整数和。
                                        先用for做,然后用while做。
                我国最高山峰是珠穆朗玛峰,8848米。现在我有一张足够大的纸,它的厚度是0.01米。
                请问,我折叠多少次,可以折成珠穆朗玛峰的高度(用for循环做)
                中午作业:
                        如果你刚才是用while写的,中午思考一下,用for循环怎么改进?
                do-while
                        格式:
                                初始化条件;
                                do
                                {
                                        循环体;
                                        控制条件;
                                }while(判断条件);
                        do-while循环和while,for循环的区别:
                                do-while循环不管判断条件是否成立,至少执行一次。
                                其他两个循环,判断条件不成,循环不执行。
                求1-100之间(不含100)的偶数和(用for)
                for:要求掌握。
                while:改进
                do-while:尝试一下。

循环的嵌套适用:
        概述:循环语句的循环体又是一个新的循环语句。
        输出语句:
                System.out.print();   // 不换行
                System.out.println(); //会自动换行。
        循环嵌套的时候:
                外循环控制:行。
                内存换控制:列。
打印正,倒三角形怎么做:
        正三角形:与打印长方形相比,内循环的判断条件发生变化。
        倒三角形:与答应长方形相比,内循环的初始化条件发生变化。

转义字符:
        \r:回车
        \n:换行
        \t:一个tab键位置

break和continue:
        概述:他们是用来终止或者中断循环操作的。
        break:终止本循环,循环结束。程序继续往下走。
        continue:中断本次循环,进入下一次循环,循环不会终止。
        注意事项:
                1、他们都可以用于循环中,一般用在循环中的判断语句中。
                2、break还可以用于switch-case语句中。
                3、在一个循环体系中,他们一般放在末尾。

        break和continue的区别?
                首先,他们都可以用在循环中,break是用来终止本循环的,循环结束,程序会继续往下走。
                而continue是用来中断本次循环,进入下一次循环的,循环不会终止。
                break还可以用在switch-case语句中。

带标号的循环的终止:
        双层循环,在内循环中写一个break,如何结束整个循环体系?
                定义一个标号,然后用break或者continue结束到此标号即可。
        格式:
                名字:for(){}...
                然后在想要结束的地方写上: break 名字;即可。
       
        for(int x=0; x<=10; x++)
        {
                for(int y=0;y<10;y++)
                {
                        break;
                }
        }







                中午作业:
                        上午代码再练习一遍:
                                1、求1-10之间的整数和(for,while做)
                                2、求珠穆朗玛峰的高度问题。(for,while做)
                                3、求1-100之间的偶数和(for,while做)
                                int sum = 0;
                                for(int x =0;x<100;x+=2)
                                {
                                        sum+=x;

                                        /*if(x%2==0)
                                        {
                                                sum+=x;
                                        }*/
                                }
                                System.out.println(sum);
                                有时间的话,可以尝试用do-while改进下这三个题。
                        思考题:
                                打印出所有的"水仙花数"。
                                所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:
                                153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
                                提示:
                                1:采用循环取得所有的三位数。(三位数指的是100-999之间的数)。
                                2:把每个三位数的个位,十位,百位进行分解。
                                153举例:
                                        个位:153/1%10 = 3
                                        十位:153/10^1%10 =5
                                        百位:153/10^2%10 = 1
                                获取一个整数每一位值的方法:
                                        整数/(10^权)%10
                                        大白话:求什么位置的数值,就除以多少,然后跟10取余。


*****
*****
*****
*****

一次只能打印一个*,怎么做?
for(int x=0; x<4; x++)
{
        for(int y=0; y<5; y++)
        {
                System.out.print("*");
        }
        System.out.println();
}
        循环嵌套的时候:
                外循环控制:行。
                内循环控制:列。

*
**
***
****
*****
for(int x=0; x<5; x++)
{
        for(int y=0; y<=x; y++)
        {
                System.out.print("*");
        }
        System.out.println();
}

*****
****
***
**
*
for(int x=0; x<5; x++)
{
        for(int y=x; y<5; y++)
        {
                System.out.print("*");
        }
        System.out.println();
}
尝试打印九九乘法表:
1*1=1 1*2=2.。。。
2*1=2 2*2=4.。。。
for(int x=1; x<=9; x++)
{
        for(int y=1; y<=9; y++)
        {
                System.out.print(y+"*"+x+"="+x*y+"\t");
        }
        System.out.println();
}


for(int x=0; x<=10; x++)
{
       
}

作者: 18530919536    时间: 2015-6-3 22:32
总结的很详细,学习了




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