黑马程序员_JAVA之路3——循环语句与函数

来源:互联网 发布:app的数据库设计 编辑:程序博客网 时间:2024/04/29 13:51
------- android培训、java培训、期待与您交流! ----------

1  循环结构:while        do while      for

        while(条件表达式)   //先判断条件,条件满足再执行语句。
        {
               循环体 执行语句
        } 
        注意:while(条件表达式)后面不要加;,若加分号则成死循环
        题外话:(ctrl+c   强行停止命令行)

        do                           //先执行语句再判断条件,若满足条件再执行循环体。do while 至少执行一次
        {
                循环体执行语句
         }
        while(条件表达式);//注意加分号。

        for(初始化表达式;循环条件表达式;循环后的操作表达式)//只要是合法表达式即可,不一定非得int x=0.表达式也可以多个,用,分开即可。
        {
                执行语句
        }

例如:for(int x=0;x<3;x++)//x只作用于for中
            {
                    System.out.println("x="+x);
            }
            执行过程:先int x=0,再x<3,再System.out.println("x="+x);再x++,再x<3,再 System.out.println("x="+x);再x++。。。。。。。其中int x=0只执行一次。
另外:也可以写成:
        int x=0;
        for(;x<3;)
        {
                x++;
        }
        初始化表达式和循环后的操作表达式可以省略,如果这样的话其实直接用while就可以了。
        while与for的区别:变量作用域不一样,for中变量只存在于for中,while是全局的。如果变量只为循环存在的话,用for语句,内存会相对优化一些,局部变量再使用完后会立即释放内存空间。另外,for和while可以互换。

注意:
        int x=1;
        for(System.out.println("a");x<3;System.out.println("c"))
        {
                System.our.println("d");
                x++;
        }
        运算结果:adcdc


        无限循环的最简单表达形式:
                for(;;){}                     //其中表判断的表达式默认为true
                while(true){}

2  示例
        打印1-10的和
        int sum=0;
        int x=1;
        while(x<=10)
        {
                sum=sum+x;
                x++;

        }

       1-100之间7的倍数的个数,并打印。
        int x=0;//用于存放7的倍数的个数
        int y;//用于存放7的倍数
        for(int z=1;z<=100;z++)
        {
            if(z%7==0)
            {
                x++;
                System.out.println(z);
            }
        }
        System.out.println("7的倍数的个数为"+x);
        
        注意:其实这就是累加思想,通过变量记录住循环操作后的结果。

3   语句嵌套形式,循环中含有循环,即循环嵌套
        打印九九乘法表 
       for(int x=1;x<=9;x++)
        {
            for(int y=1;y<=x;y++)
            {
                System.out.print(y+"*"+x+"="+x*y+"  ");
            }
            System.out.println();
        }
        用*打印由每边5个*的等边三角形,
        for(int x=1;x<=5;x++)
        {
                for(int y=5;y>x;y--)
                {
                    System.out.print("");
                }
                for(int z=1;z<=x;z++)
                {
                    System.out.print("* ");
                }
                System.out.println();
        }
4   其他流程控制语句
    break(跳出)  :默认跳出所在循环,也可以指定跳出指定循环
            应用范围:选择结构和循环结构
            w:for(int x=0;x<=9;x++)
            {
                    q:for(int y=0;y<3;y++)
                    {
                            System.out.println("d");
                            break;    //跳出所在循环
                            break w;//跳出w循环
                    }
            }
    continue(继续):跳过continue后面的内容,继续下一次循环。
            应用范围:循环结构
            for(int y=1;y<=x;y++)
            { 
                if(y%2==1)  
                    continue;
                System.out.print(y);
            }

          w:for(int x=0;x<=9;x++)
            {
                    q:for(int y=0;y<3;y++)
                    {
                            System.out.println("d");
                            
                            continue w;//终止w该次循环,继续下一次循环。
                    }
            }
    
    记住:
        break 和contiinue语句作用的范围
        break和continue单独存在时, 下面可以有任何语句,因为都执行不到。       

5  函数
        定义:函数就是定义在类中的具有特定功能的一段独立小程序
        函数也称为方法。
        格式:
                修饰符  返回值类型   函数名(参数类型  形式参数1,参数类型  形式参数2........)
                {
                        执行语句;
                        return返回值;
                }
                
                返回值类型:函数运行后的结果的数据类型
                参数类型:是形式参数的数据类型
                形式参数:是一个变量,用于存储调用函数时出啊递给函数的实际参数
                世界参数:传递给形式参数的具体数值
                return:用于结束函数
                返回值:该值会返回给调用者

    class FunctionTest
    {
              public static int  getSum(int x)
                {
                    int sum=0;
                    sum=x+8+9;
                    return sum;
                }
                public static void main(String[] args)
                {
                    System.out.println(getSum(4));
                }

    }

    函数特点:
            电议函数可以将功能代码进行封装
            便于对该功能进行复用
            函数只有被调用才会被执行
            函数的出现提高了代码的复用性
            对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写,但写上也不错。
    注意:
            函数中只能调用函数,不可以再函数内部定义函数(尤其注意在main中)
            定义函数时,函数的结果应该返回给调用者,交由调用者处理


6   函数的重载
        概念:再同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
        特点:与返回值类型无关,只看参数列表
        好处:方便与阅读,优化了程序设计
        示例:
                //返回两个整数的和
                int add(int x,int y){return x+y;}
                //返回三个整数的和
                int add(int x,int y, int z){return x+y+z;}
                //返回两个小数的和
                //double add(double x,double y){return x+y;}
        什么时候用重载?当定义的功能相同,但参与运算的求知内容不同,那么这是就定义一个函数名称以表示其功能,方便于都,二通过参数列表的不同来区分多个不同名函数。 两个仅仅返回值类型不同的函数不能同时存在同一个类中。

7 数组
        概念:同一种类型数据的集合,其实数组就是一个容器。
        数组好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
        格式1: 元素类型[]  数组名 = new 元素类型[元素个数或数组长度];
                示例:int[] arr=new int[5];
        格式2:元素类型[]  数组名=new 元素类型[]{元素1,元素2,...};
                示例:int[] arr= new int[]{1,2,3};
                           int[] arr={1,2,3};
        new的作用:用于在内存中开辟一个容器实体。
        解读:new int[5]:意思是再内存的堆中开辟一个可以容5个元素的实体。
                    int[] arr:意思是在内存的栈中开辟一个数组型变量arr
                  int[] arr=new int[5]; 意思是开辟一个容器实体,并把该容器实体的地址赋给数组型变量arr   。   arr中存放的是地址。
        数组不赋值时,默认:int  0       double  0.0     float  0.0f      boolean   false
    注意:
        int[] arr= new int[]{1,2,3};
                arr=null;//null只能赋给引用数据类型变量
                将null赋给arr后,表示数组型变量arr不再指向数组,值为空了。而此时new int[]{1,2,3}没有被引用,这种情况下称为垃圾,会被java的垃圾回收机制定期清理,而不是马上清理。






原创粉丝点击