黑马程序员 Java基础 04

来源:互联网 发布:上海数据港 业务畸形 编辑:程序博客网 时间:2024/06/07 10:07

---------------------- android培训、java培训、期待与您交流! ---------------------

嵌套循环练习

class ForForTest {public static void main(String[] args) {/*输出如下图形****************/for(int x=1;x<=5;x++){for(int y=5-x;y>=0;y--)//使用x控制y的值{System.out.print("*");}System.out.println();//每次行的输出结束后,换行}System.out.println("--------------");/*****************/for (int x=1;x<=5 ;x++ ){for (int y=1;y<=x ;y++ )//使用x控制y的范围{System.out.print("*");}System.out.println();//每次行的输出结束后,换行}System.out.println("--------------");/*543215432543545*/for (int x=1;x<=5 ;x++ ){for (int y=5;y>=x ;y--){System.out.print(y);}System.out.println();}System.out.println("--------------");/*122333444455555*/for (int x=1;x<=5 ;x++ ){for (int y=1;y<=x ; y++){System.out.print(x);}System.out.println();}}}

class  ForFor99{public static void main(String[] args) {/*1*1=11*2=22*2=41*3=32*3=63*3=9……*/for (int x=1;x<=9 ;x++ ){for (int y=1; y<=x;y++ ){System.out.print(y+"*"+x+"="+y*x+"\t");//使用制表符'\t'能够实现输出时对齐}System.out.println();}/*\n 回车\t 制表符\b 退格\r 按下回车键windows系统中回车符其实是由两个符号组成的\r\nlinux中回车符是\n*/}}

class BreakContinueDemo {public static void main(String[] args) {/*break 跳出作用的范围:只在switch语句和循环语句中使用※当break语句单独存在时,下面不要定义其他语句,因为执行到break语句时跳出,后面的语句不会执行break跳出当前循环,如果出现了循环嵌套,break想要跳出指定的循环,可以通过标号来完成*/for (int x=0;x<3 ;x++ ){System.out.println("x="+x);break;//第一次循环的最后跳出,只输出一次x=0}System.out.println("---------------");loop1:for (int x=0;x<3 ;x++ )//对for循环起名{loop2:for (int y=0;y<4 ;y++ ){System.out.println("x="+x);break loop1;//在内循环中第一次执行输出语句后,直接跳出外循环loop1,结果只输出一次x=0}}System.out.println("---------------");/*continue 继续作用的范围:循环结构作用:结束本次循环,继续下次循环*/for (int x=0;x<11 ;x++ ){/*在进入循环后,先执行continue语句,跳出当前循环进行下次循环continue;System.out.println("x="+x);//该语句无法执行,编译报错。*/if (x%2==0)//x为偶数时,不输出,继续下次循环{continue;}System.out.println("x="+x);}System.out.println("---------------");loop1:for (int x=0;x<3 ;x++ )//对for循环起名{loop2:for (int y=0;y<4 ;y++ ){System.out.println("x="+x);continue loop1;//在内循环中第一次执行输出语句后,跳到外循环继续执行,输出x=0,x=1,x=2}}}}
函数    什么是函数        韩式就是定义在类中的具有特定功能的一段独立小程序        函数也称为方法    定义函数的格式        修饰符 返回值类型 函数名(参数类型 形参2,参数类型 形参2,...)    //函数名有多个单词时,第一个单词小写,后面的单词首字母大写        {            执行语句;            return 返回值;        }    特殊情况:        功能没有具体的返回值。    这时,retrun的后面直接用分号结束,因为没有具体值,所以不可以写具体的数据类型,        在java中只能用一个关键字void来表示这种情况。        注意:如果返回值类型为void,那么函数中的return语句可以省略不写。    特点:        1.定义函数可以将功能代码进行封装        2.便于对该功能进行服用        3.函数只有被调用才会被执行        4.函数的出现提高了代码的复用性    注意:        函数中只能调用函数,不能在函数内部定义函数。        定义函数时,函数的结果应该返回给调用者,交由调用者处理。
    class FunctionDemo3    {        public static void main(String[] args)        {            System.out.println(add(4,5));            draw(7,9);            System.out.println(equals(5,6));            System.out.println(getMax(4,5));        }        /*        需求1:定义一个功能,完成两个整数的和的获取        思路:既然定义功能,就是可以用函数来体现                    如何定义一个函数?                    通过两个明确来完成        明确1:这个功能的结果是什么? 是两个整数的和,是功能的结果,所以该功能的返回值类型是int                    明确返回值的类型。        明确2:这个功能实现过程中是否需要未知内容参与运算? 需要加数和被加数。                    这就是函数的参数列表(参数的个数,参数的类型)                    明确参数列表        注意:返回值类型和参数类型没有直接关系        */        public static int add(int a,int b)        {            return a+b;        }                /*        需求2 定义一个功能,在控制台画一个矩形        明确1:这个功能的结果是什么?没有结果,直接打印到控制台        明确2:这个功能实现过程中是否需要未知内容参与运算? 行和列不确定,需要两个整数int        */        public static void draw(int row,int col)        {            for (int x=1;x<=row ;x++ )            {                for (int y=1;y<=col ;y++ )                {                    System.out.print("*");                }                System.out.println();            }        }        /*        需求3 定义一个功能,比较两个数是否相等        明确1:这个功能的结果是什么?有结果,true或false,返回值为boolean        明确2:这个功能实现过程中是否需要未知内容参与运算? 两个数不确定,需要两个整数int        */        public static boolean equals(int a,int b)        {            /*            if(a==b)                return true;            else                return false;            */            return a==b;//a==b,本身是在进行比较运算,结果是true或false,不要要是用(a==b)?true:false        }        /*        需求4 定义一个功能,获取两个整数中较大的那个数        明确1:这个功能的结果是什么?有结果,返回较大的整数        明确2:这个功能实现过程中是否需要未知内容参与运算? 参与比较的数不确定,需要两个整数int        */        public static int getMax(int a,int b)        {            return (a>b)?a:b;        }    }


    函数的重载(overload)
        重载的概念
            在同一个类中,允许存在一个以上的同名名称,只要他们的参数个数或者参数类型不同即可。
        重要特点
            与返回值类型无关,只看参数列表
        class FunctionDemo4        {            public static void main(String[] args)            {                System.out.println(add(1.2,2.5));                printCFB(5);                printCFB();            }            /*            函数的重载            1.同一个类            2.同名            3.参数个数不同或参数类型不同            4.函数重载和返回值类型无关            5.java是严谨性语言,如果函数出现调用的不确定性,会编译失败            */             //加法运算,两个整数的和            public static int add(int a,int b)            {                return a+b;            }             //加法运算,两个小数的和             public static double add(double a,double b)            {                 return a+b;             }             //加法运算,三个整数的和             public static int add(int a,int b,int c)            {                 return a+b+c;             }             /*             打印乘法表             */             public static void printCFB(int num)            {                for (int x=1;x<=num ;x++ )                {                    for (int y=1; y<=x;y++ )                    {                        System.out.print(y+"*"+x+"="+y*x+"\t");//使用制表符'\t'能够实现输出时对齐                    }                    System.out.println();                }             }             /*             打印标准乘法表             */             public static void printCFB()            {                    printCFB(9);             }        }



数组(引用数据类型)
    概念:同一种类型数据的结合,其实数组就是一个容器
    数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素
    格式1
        元素类型[] 数组名=new 元素类型[元素个数或数组长度];
        int[] arr=new int[5]
    格式2
        元素类型[] 数组名=new 元素类型[] {元素,元素,……};
        int[] arr=new int[]{3,5,1,7};
        int[] arr={3,5,1,7};
    内存的划分
        1.寄存器
        2.本地方法区
        3.方法区
        4.栈内存
             存储的都是局部变量(程序运行时,方法要进栈,否则,局部变量无法进栈)。
             而且变量所属的作用域一旦结束,该变量就自动释放
        5.堆内存
             存储的是数组和对象(其实数组就是对象);凡是new建立的,都在堆中
             特点:
             1.每一个实体都有首地址值
             2.堆内存中的每个变量都有默认初始化值,根据类型的不同而不行(整数是0,小数是0.0或0.0f,boolean是false,char'\u0000')
             3.垃圾回收机制
        
        arr不做任何实体指向,则arr=null;//数组arr为空,所有元素的值都为默认初始化值
        int[] x=new int[3];//假设首地址为0x0034,数组内元素为x{0,0,0}
        int[] y=new int[3];//假设首地址为0x0087,y{0,0,0}
        x[0]=9;//x{9,9,9}
        y[0]=34;//x{34,0,0}
        x=y;//首地址变为0x0087,x{34,0,0}
        多个数组变量可以指向同一个实体。
        class ArrayDemo        {            public static void main(String[] args)            {                //元素类型[] 数组名=new 元素类型[元素个数或数组长度];                int[] arr=new int[3];                arr[0]=89;                System.out.println(arr[0]);            }        }


----------------android培训、java培训、期待与你交流,详细查看:http://edu.csdn.net/heima------------

	
				
		
原创粉丝点击