每一门计算机语言都提供几种语法结构,顺序结构、选择结构、循环结构。Java 语言也能提这样的几种语法结构。
顺序结构:代码一行一行的从上到下的执行。
选择结构:通过判断条件是否满足,来有选择性的执行代码。
循环结构:满足一些条件循环的执行代码。
选择结构:Java 语言中提供两种操作,一种是if..else if 、另一种是 switch。
if ()里是一个可以返回是true|false的表达式或是结果,只要满足条件就会执行大括号中的代码。
// 情况一:
int a=5;int b=4;
if(a>b){
System.out.println("a大于b");
}
// 情况二:
if(a>b){
System.out.println("5大于4");
}else if(a<b){
System.out.println("5小于4");
}
// 情况:
if(a>b){
System.out.println("5大于4");
}else if(a<b){
System.out.println("5小于4");
}else{
System.out.println("其他情况");
}
有时,可以把{}省略掉,但最好不要这么做,会影响可读性。
switch ()里是一个数值型数据,long 除外,可以是int char byte short ,C#语言可以 跟String.
char c='b';
switch (c) {
case 'a':
System.out.println("a");
break;
case 'b':
System.out.println("b");
break;
case 'c':
System.out.println("c");
break;
default:
System.out.println("default");
break;
}
注:这是switch最基本的格式,如果把break删除,就会到达满足条件后,其他的都不做判断,直接输出。
循环结构:Java中提供 while、do..while、for、在JDK 1.5时,提供了增强for既foreach. 每一种循环都遵守,初、判、变 这几个生命周期。
初:初始化变量,为变量赋值。
判:判断条件是否满足,进到循环中。
变:不断的改变变量的值,要求不断的满足条件,直到循环结束。
while ()后跟一个返回true的条件,条件为true时,执行{}中的内容,最后改变其变量,直到不()中的条件不满足条件,循环退出。
int num=10;
while (num>0) {
System.out.println(num);
num--;
}
do..while 后先跟一个{} 然后在改变变量的值,while 后()添加循环条件,特点,不管条件满足不满足都会运行一次。
do {
System.out.println(num);
num--;
} while (num>0);
for 大部分的循环都可以使用for来替换while 或 do..while。语法更加简洁。
for(int i=10;i>=1;i--){
System.out.println(i);
}
控制循环结构:在Java语言中定义了 break continue return 来处理循环结构。
break:
用法一,跳出循环体,结束本次循环。
for(int i=10;i>=1;i--){
System.out.println(i);
if(i==5){
break;
}
}
当i=5时,跳出循环体,所以会输入 10,9,8,7,6,5 这几个数据。
用法二,定义跳转标签,跳出所有循环体。标签名:
outer:
for(int i=10;i>=1;i--){
for(int j=5;j>=0;j--){
System.out.println("i="+i+"\tj="+j);
if(j==4){
break outer;
}
}
运算结果:
i=10 j=5
i=10 j=4
continue:和break 有点类似,只是结束本次循环,并执行下次循环,并不跳出循环体。
用法一:忽略本次循环,进入下次循环。
for(int i=10;i>=1;i--){
System.out.println(i);
if(i==5){
continue;
}
}
用法二:定义标签,跳转到循环体外,忽略本次循环,进入下次循环。
outer:
for(int i=2;i>=1;i--){
for(int j =0;j<5;j++){
System.out.println("i="+i+"\tj="+j);
if(j==3){
continue outer;
}
}
}
输出结果:
i=2 j=0
i=2 j=1
i=2 j=2
i=2 j=3
i=1 j=0
i=1 j=1
i=1 j=2
i=1 j=3
ruturn:并不是结束一个循环体,而是结束一个方法。
for(int i=2;i>=1;i--){
for(int j =0;j<5;j++){
System.out.println("i="+i+"\tj="+j);
if(j==3){
return;
}
}
}
输出结果:
i=2 j=0
i=2 j=1
i=2 j=2
i=2 j=3
return 跟可以跟对象,变量、常量、表达式,这些在以后讲方法时会说到。
数组:存储相同数据类型的数据结构。
特点:一个数据一旦定义,他的内存空间就固定不变了,长度也不变了,即便是把数据清空,内容大小一保持不变。
数据类型 [] 变量名 = new 数据类型[]{xx,xx}; int [] array=new int[]{12,23,32,33,41,9,'c'};
数据类型 [] 变量名 = new 数据类型[size]; int [] arraya=new int[3];
数据类型 [] 变量名 = {xx,xx} int [] arrayb={1,34};
数组常用方法。
访问数组中的元素,只能通过下标来访问,如 变量名[下标]
int [] array=new int[]{12,23,32,33,41,9,'c'}; // 存放的数据可是以数据类型的子类。
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
想要清空一个数据可以使用array=null; 通知,GC 这个数组没有引用了。
在 JDK 1.5 时,新增了 foreach 循环。可以使用foreach 操作数组或集合。 但不能修改数据。
for (type variableName:array|collection){ variableName}
for (int i : array) {
System.out.println(i);
}
当定义了一个数据并声明了内存大小时,就会在内存中创建两块地址,一个是引用变量地址的存储位置,另一个是存储内容的地址。
如 int [] a = {1,2,3};
int [] b = {1,2,3,4};
a 存储在 栈中,而{1,2,3} 则存储在堆中,要想使用此数组 就必须使用变量名a 操作 堆中的数据。
也可以把b=a,这 样就会产生新的数据。
那么此时,b的长度 也是3了。而 {1,2,3,4} 没有变量在引用他了,只能等待GC 回收,释放内存。
操作数组,Java 提供了一个工具类。java.util.Arrays; 可以很方便的操作数组,有常用的排序,查找,复制等,具体请参看API.
顺序结构:代码一行一行的从上到下的执行。
选择结构:通过判断条件是否满足,来有选择性的执行代码。
循环结构:满足一些条件循环的执行代码。
选择结构:Java 语言中提供两种操作,一种是if..else if 、另一种是 switch。
if ()里是一个可以返回是true|false的表达式或是结果,只要满足条件就会执行大括号中的代码。
// 情况一:
int a=5;int b=4;
if(a>b){
System.out.println("a大于b");
}
// 情况二:
if(a>b){
System.out.println("5大于4");
}else if(a<b){
System.out.println("5小于4");
}
// 情况:
if(a>b){
System.out.println("5大于4");
}else if(a<b){
System.out.println("5小于4");
}else{
System.out.println("其他情况");
}
有时,可以把{}省略掉,但最好不要这么做,会影响可读性。
switch ()里是一个数值型数据,long 除外,可以是int char byte short ,C#语言可以 跟String.
char c='b';
switch (c) {
case 'a':
System.out.println("a");
break;
case 'b':
System.out.println("b");
break;
case 'c':
System.out.println("c");
break;
default:
System.out.println("default");
break;
}
注:这是switch最基本的格式,如果把break删除,就会到达满足条件后,其他的都不做判断,直接输出。
循环结构:Java中提供 while、do..while、for、在JDK 1.5时,提供了增强for既foreach. 每一种循环都遵守,初、判、变 这几个生命周期。
初:初始化变量,为变量赋值。
判:判断条件是否满足,进到循环中。
变:不断的改变变量的值,要求不断的满足条件,直到循环结束。
while ()后跟一个返回true的条件,条件为true时,执行{}中的内容,最后改变其变量,直到不()中的条件不满足条件,循环退出。
int num=10;
while (num>0) {
System.out.println(num);
num--;
}
do..while 后先跟一个{} 然后在改变变量的值,while 后()添加循环条件,特点,不管条件满足不满足都会运行一次。
do {
System.out.println(num);
num--;
} while (num>0);
for 大部分的循环都可以使用for来替换while 或 do..while。语法更加简洁。
for(int i=10;i>=1;i--){
System.out.println(i);
}
控制循环结构:在Java语言中定义了 break continue return 来处理循环结构。
break:
用法一,跳出循环体,结束本次循环。
for(int i=10;i>=1;i--){
System.out.println(i);
if(i==5){
break;
}
}
当i=5时,跳出循环体,所以会输入 10,9,8,7,6,5 这几个数据。
用法二,定义跳转标签,跳出所有循环体。标签名:
outer:
for(int i=10;i>=1;i--){
for(int j=5;j>=0;j--){
System.out.println("i="+i+"\tj="+j);
if(j==4){
break outer;
}
}
运算结果:
i=10 j=5
i=10 j=4
continue:和break 有点类似,只是结束本次循环,并执行下次循环,并不跳出循环体。
用法一:忽略本次循环,进入下次循环。
for(int i=10;i>=1;i--){
System.out.println(i);
if(i==5){
continue;
}
}
用法二:定义标签,跳转到循环体外,忽略本次循环,进入下次循环。
outer:
for(int i=2;i>=1;i--){
for(int j =0;j<5;j++){
System.out.println("i="+i+"\tj="+j);
if(j==3){
continue outer;
}
}
}
输出结果:
i=2 j=0
i=2 j=1
i=2 j=2
i=2 j=3
i=1 j=0
i=1 j=1
i=1 j=2
i=1 j=3
ruturn:并不是结束一个循环体,而是结束一个方法。
for(int i=2;i>=1;i--){
for(int j =0;j<5;j++){
System.out.println("i="+i+"\tj="+j);
if(j==3){
return;
}
}
}
输出结果:
i=2 j=0
i=2 j=1
i=2 j=2
i=2 j=3
return 跟可以跟对象,变量、常量、表达式,这些在以后讲方法时会说到。
数组:存储相同数据类型的数据结构。
特点:一个数据一旦定义,他的内存空间就固定不变了,长度也不变了,即便是把数据清空,内容大小一保持不变。
数据类型 [] 变量名 = new 数据类型[]{xx,xx}; int [] array=new int[]{12,23,32,33,41,9,'c'};
数据类型 [] 变量名 = new 数据类型[size]; int [] arraya=new int[3];
数据类型 [] 变量名 = {xx,xx} int [] arrayb={1,34};
数组常用方法。
访问数组中的元素,只能通过下标来访问,如 变量名[下标]
int [] array=new int[]{12,23,32,33,41,9,'c'}; // 存放的数据可是以数据类型的子类。
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}
想要清空一个数据可以使用array=null; 通知,GC 这个数组没有引用了。
在 JDK 1.5 时,新增了 foreach 循环。可以使用foreach 操作数组或集合。 但不能修改数据。
for (type variableName:array|collection){ variableName}
for (int i : array) {
System.out.println(i);
}
当定义了一个数据并声明了内存大小时,就会在内存中创建两块地址,一个是引用变量地址的存储位置,另一个是存储内容的地址。
如 int [] a = {1,2,3};
int [] b = {1,2,3,4};
a 存储在 栈中,而{1,2,3} 则存储在堆中,要想使用此数组 就必须使用变量名a 操作 堆中的数据。
也可以把b=a,这 样就会产生新的数据。
那么此时,b的长度 也是3了。而 {1,2,3,4} 没有变量在引用他了,只能等待GC 回收,释放内存。
操作数组,Java 提供了一个工具类。java.util.Arrays; 可以很方便的操作数组,有常用的排序,查找,复制等,具体请参看API.