黑马程序员_java基础(2) 流程控制语句&函数与数组
2013-03-12 02:49
1091 查看
-------android培训、java培训、期待与您交流!
----------
if ...else if... else if.... else.... 嵌套用法
代码实现
选择分支结构
switch.... case 嵌套用法
switch语句选择的类型只有四种:byte,short,int
, char JDK1.5中支持了枚举类型 ,JDK1.7中支持了String 类型
结束switch语句的两种情况:遇到break,执行到switch语句结束
如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束
if和switch的应用:
if:
1,对具体的值进行判断。
2,对区间判断。
3,对运算结果是boolean类型的表达式进行判断。
switch:
1,对具体的值进行判断。
2,值的个数通常是固定的。
对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案都加载进内存。
效率相对高一点。
代码实现:
循环结构
while , for, do...while, 嵌套用法
,for里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环
条件,重复找个过程,直到条件不满足为止
while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用
最简单无限循环格式:while(true)
, for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环
代码实现:
for
语句
do
while 语句:
其他流程控制语句
break 语句
continue 语句
标号语句 break/ continue: 标号名
eg:
修饰符 返回值类型 函数名(参数类型 形式参数1...){
执行语句;
return 返回值;
}
特点:
定义函数可以将功能代码进行封装
便于对该功能进行复用
函数只有被调用才会被执行
函数的出现提高了代码的复用性
对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。
函数重载
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
特点:
与返回值类型无关,只看参数列表
面试题:
Overload 和 Override 区别
方法的重写Override和重载Overload是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。
Overloaded的方法是可以改变返回值的类型。
eg:
JVM方法调用的执行过程
同一种类型数据的集合。其实数组就是一个容器
格式 :
元素类型[] 数组名 = new 元素类型[元素个数]
元素类型[] 数组名 = new 元素类型[元素,元素....]
数组内存结构
常见的数组排序操作
选择排序
eg:
冒泡排序
折半查找
格式定义
int[][] arr
= new int[4][4]
int[][]
arr = new int[4][]
int[][]
arr = {{5,2,2},{3,5},{5,3,15,6}}
注意:第三个一维数组长度 arr[2].length
-------android培训、java培训、期待与您交流!
----------
----------
一.流程控制语句
判断结构if ...else if... else if.... else.... 嵌套用法
代码实现
class IfDemo2 { public static void main(String[] args) { /* if语句的第二种格式: if(条件表达式) { 执行语句; } else//否则 { 执行语句; } */ int x = 1; if(x>1) { System.out.println("yes"); } else { System.out.println("no"); } System.out.println("Hello World!"); int a = 3,b; /* if(a>1) b = 100; else b = 200; */ b = a>1?100:200;//三元运算符就是if else 语句简写格式。 // 简写格式什么时候用? // 当ifelse运算后,有一个具体的结果时,可以简化写成三元运算符。 System.out.println("b="+b); } }
选择分支结构
switch.... case 嵌套用法
switch语句选择的类型只有四种:byte,short,int
, char JDK1.5中支持了枚举类型 ,JDK1.7中支持了String 类型
结束switch语句的两种情况:遇到break,执行到switch语句结束
如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束
if和switch的应用:
if:
1,对具体的值进行判断。
2,对区间判断。
3,对运算结果是boolean类型的表达式进行判断。
switch:
1,对具体的值进行判断。
2,值的个数通常是固定的。
对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案都加载进内存。
效率相对高一点。
代码实现:
class SwitchDemo { public static void main(String[] args) { /* switch(表达式) { case 取值1: 执行语句; break; case 取值2: 执行语句; break; …... default: 执行语句; break; } */ int x = 2; switch(x)//byte,short,int,char. { default: System.out.println("d"); //break; case 4: System.out.println("a"); //break; case 1: System.out.println("b"); break; case 3: System.out.println("c"); break; } int a = 4,b =2; char opr = '%'; switch(opr) { case '+': System.out.println(a+b); break; case '-': System.out.println(a-b); break; case '*': System.out.println(a*b); break; case '/': System.out.println(a/b); break; default: System.out.println("无法运算,符号不支持"); break; } } }
循环结构
while , for, do...while, 嵌套用法
,for里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环
条件,重复找个过程,直到条件不满足为止
while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用
最简单无限循环格式:while(true)
, for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环
代码实现:
for
语句
class ForDemo { public static void main(String[] args) { /* for(初始化表达式;循环条件表达式;循环后的操作表达式) { 执行语句;(循环体) } for(int x = 1; x<3; x++) { System.out.println("x="+x); } */ int x = 1; for(System.out.println("a");x<3; System.out.println("c")) { System.out.println("d"); x++; } // for(int a=0,b=0; a<3; a++,b--) //a d c d c } }while语句:
class WhileDemo { public static void main(String[] args) { /* while(条件表达式) { 执行语句; } */ int x = 1; while(x<3); { System.out.println("x="+x); x++; } } }
do
while 语句:
class DoWhileDemo { public static void main(String[] args) { /* do { 执行语句; }while(条件表达式); */ int x = 1; do { System.out.println("x="+x); x++; } while (x<1); /* do while语句的特点:无论条件是否满足,循环体至少执行一次。 */ int y = 1; while(y<1) { System.out.println("y="+y); y++; } }
其他流程控制语句
break 语句
continue 语句
标号语句 break/ continue: 标号名
eg:
class BreakContinueDemo { public static void main(String[] args) { /* break:跳出。 break作用的范围:要么是switch语句,要么是循环语句。 记住:当break语句单独存在时,下面不要定义其他语句,因为执行不到。 break跳出所在的当前循环。 如果出现了循环嵌套,break想要跳出指定的循环,可以通过标号来完成。 for(int x=0; x<3; x++) { if(x==1) break; System.out.println("x="+x); } b:for (int x=0; x<3 ;x++ ) { c:for (int y=0; y<4 ; y++) { System.out.println("x="+x); break b; } }*/ /* continue:继续。 作用的范围:循环结构。 continue:结束本次循环,继续下次循环。 如果continue单独存在时,下面不要有任何语句,因为执行不到。 for (int x=0; x<11 ;x++ ) { if(x%2==0) continue; System.out.println("x="+x); } */ c:for (int x=0; x<3 ;x++ ) { b:for (int y=0; y<4 ; y++) { System.out.println("x="+x); continue c; } } } }-------------------------------------------------------------------------------------------------------------------------
二.java函数
函数格式:修饰符 返回值类型 函数名(参数类型 形式参数1...){
执行语句;
return 返回值;
}
特点:
定义函数可以将功能代码进行封装
便于对该功能进行复用
函数只有被调用才会被执行
函数的出现提高了代码的复用性
对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。
函数重载
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
特点:
与返回值类型无关,只看参数列表
面试题:
Overload 和 Override 区别
方法的重写Override和重载Overload是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。
Overloaded的方法是可以改变返回值的类型。
eg:
//返回两个整数的和 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;}-------------------------------------------------------------------------------------------------------------------------
JVM方法调用的执行过程
三.java数组
概念:同一种类型数据的集合。其实数组就是一个容器
格式 :
元素类型[] 数组名 = new 元素类型[元素个数]
元素类型[] 数组名 = new 元素类型[元素,元素....]
数组内存结构
常见的数组排序操作
选择排序
eg:
for(int x=0;x<a.length-1;x++){ for(int y=x+1;y<a.length;y++){ if(a[x]>a[y]){ int temp=a[x]; a[x]=a[y]; a[y]=temp; } } }
冒泡排序
for(int x=0;x<a.length-1;x++){ for(int y=0;y<a.length-x-1;y++){ if(a[y]>a[y+1]){ int temp=a[y]; a[y]=a[y+1]; a[y+1]=temp; } } }
折半查找
public static int halfSearch_2(int[] arr,int key) { int min = 0,max = arr.length-1,mid; while(min<=max) { mid = (max+min)>>1; if(key>arr[mid]) min = mid + 1; else if(key<arr[mid]) max = mid - 1; else return mid; } return -1; }进制转换:
public static void toHex(int num) { StringBuffer sb = new StringBuffer(); for(int x=0; x<8; x++) { int temp = num & 15; if(temp>9) //System.out.println((char)(temp-10+'A')); sb.append((char)(temp-10+'A')); else //System.out.println(temp); sb.append(temp); num = num >>> 4; } System.out.println(sb.reverse()); }二维数组
格式定义
int[][] arr
= new int[4][4]
int[][]
arr = new int[4][]
int[][]
arr = {{5,2,2},{3,5},{5,3,15,6}}
注意:第三个一维数组长度 arr[2].length
-------android培训、java培训、期待与您交流!
----------
相关文章推荐
- 黑马程序员 JAVA初级-编程基础2 流程控制语句 函数 数组
- 黑马程序员——java基础---流程控制、函数、数组
- 黑马程序员_Java基础(流程控制、函数、数组)
- 黑马程序员——Java语言基础:程序流程控制、函数、数组
- 黑马程序员-Java基础【2】(流程控制语句,方法,数组)
- 黑马程序员_01_Java语言基础部分(数据类型与表达式、流程控制语句、数组与方法)
- 黑马程序员——Java语言基础(二)---程序流程控制语句、函数
- 黑马程序员_Java基础_进制转换、基本数据类型、运算符、流程控制语句等
- Java基础语法(二)---流程控制与函数 (黑马程序员)
- 黑马程序员--java语言基础之--流程控制和函数
- 黑马程序员——Java基础语法(二)---流程控制与函数
- 黑马程序员_java基础_函数&数组
- Java基础<三>---> 流程控制与函数
- 黑马程序员--JAVA基础之流程控制语句
- 学习笔记 Java_毕向东_流程控制语句_函数_数组 2014.7.30
- 黑马程序员 Java基础<二>--->数据类型,数组,switch语句
- 黑马程序员---java基础---运算符、键盘录入、流程控制语句
- 黑马程序员----Java语法基础(2){语句,函数,数组}
- 黑马程序员--Java语言基础2-流程控制和函数
- 黑马程序员->基础部分 (2--语句,函数,数组