目录
一. 运算符
1.1 算术运算符
1.2 赋值运算符
1.3 位运算符
1.4 比较运算符
1.5 逻辑运算符
1.6 ?:运算符
二. 分支语句
2.1 if语句
2.2 swith语句
三. 循环语句
3.1 while语句
3.2 do-while语句
3.3 for循环语句
3.4 foreach循环
三. java基础技巧专栏
一. 运算符
Java的运算符大致可以分为以下6类:算术运算符、赋值运算符、位运算符、比较运算符、逻辑运算符、?:运算符。
1.1 算术运算符
Java中的算术运算符包括加(+)、减(-)、乘(*)、除(/)、求余(%)、自加(++)、自减(--)运算符。
int a = 6;
int b = 6;
int c = a++ + 1; //c=7,a=7
int d = ++b + 1; //d=8,b=7
注:自加和自减只能作用于变量,即自加、自减运算符不能用于直接或常量的运算,如3++;5--都是错误的。
1.2 赋值运算符
赋值运算符=的作用是将一个常量或一个变量赋值给一个变量。值得注意的是,赋值表达式也是有值的,表达式的值就是等号右边被赋值的值。例如,赋值表达式a=5的值就是5,所以当执行b=a=5时,b的值就位5。
1.3 位运算符
Java中支持7种位运算符,包括:按位与(&)、按位或(&)、按位或(|)、按位非(~)、左位移运算(<<)、右位移运算(>>)、无符号右移运算(>>>)
5>>2;//结果为1
-5>>2;//结果为-2
-5>>>2;//结果为1073741822
需要注意的一点是,进行位移运算后不会改变操作数本身,它只会得到一个新的运算结果,位移运算符左边的操作数不会发送改变。
1.4 比较运算符
Java中的比较运算符包括大于(>)、大于等于(>=)、小于(<)、小于等于(<=)、等于(==)和不等于(!=)。
比较运算符的结果是一个boolean值,只有true和false两个值。
注:比较运算符“==”:
- 两个基本数据类型变量之间的比较:
int a = 5;
int b = 5;
int c = 6;
System.out.println(a == b);//结果为true
System.out.println(b == c);//结果为false
- 两个引用类型之间的比较:
String str1 = newString("abc");
String str2 = newString("abc");
String str3 = str1;
System.out.println(str1 == str2);//结果为False
System.out.println(str1 == str3);//结果为True
对于基本数据类型,它就是比较两个变量的值是否相等;对于引用类型,它其实是在比较两个引用变量是否引用的是同一块堆内存空间,或者说是否指向同一块堆内存空间;
1.5 逻辑运算符
Java中提供了六个逻辑运算符,分别是&&(与)、&(不短路与)、||(或)、|(不短路或)、!(非)、^(异或)。
注:不短路与&与&&的区别(|和||也相同):
在进行一般的与运算时,如果&&前面的表达式为false时,后面的表达式就不再运行了,这个与运算的结果为false;如a==b && c==d,如果a==b为false,则系统不再运行c==d,表达式a==b && c==d的结果为false;
二使用不断路与&时,不管a==b是否为false,都要运行c==d,也就是说使用“&”不会被“&”前面的表达式所短路,故称为不断路与。
1.6 ?:运算符
这是一个三目运算符,它的语法格式如下:逻辑运算符?表达式1:表达式2
它的运算规则是先对逻辑表达式求值,如果逻辑表达式的值为true,则执行表达式为1,并返回表达式1的值;如果逻辑表达式的值为false,则执行表达式2,并返回表达式2的值。当然表达式1和表达式2也可以是一个简单的操作数,这种情况下则直接返回;
二. 分支语句
Java语言中的分支语句有两种:if条件语句和swith条件语句;
2.1 if语句
//第一种形式
if(表达式){
语句;
}
//第二种形式
if(表达式){
语句;
}else{
语句;
}
//第三种形式
if(表达式){
语句;
}else if(表达式){
语句;
}else{
语句;
}
与c语言不同的是,这里的if后面的括号中的表达式的返回值只能是true或者false。
2.2 swith语句
switch (表达式){
case 条件1:{
语句;
break;
}
case 条件2:{
语句;
break;
}
……
case 条件N:{
语句;
break;
}
default:{
语句;
break;
}
}
swith先对表达式求值,然后依次匹配每个条件。在case标签后面每个代码块都有一条break语句,这样程序一旦走到这里就会结束执行switch语句。
如果不加这条break语句,则程序还会继续执行这个case标签后面的代码,而不再判断后面的case、default标签的条件是否匹配,直到遇见break语句或者全部执行完才会结束。
三. 循环语句
Java中循环语句主要有3种:while语句、do-while语句和for循环语句;
3.1 while语句
while(表达式){
语句;
}
在执行while循环时,先要对while后面括号中的表达式进行运算,只有当表达式的值为true时,才能执行循环体部分。
3.2 do-while语句
do{
语句;
}while(表达式);
与while循环不同,do-while语句先执行循环体,然后判断循环条件,如果循环条件为true,则执行下一次循环,否则中止循环。
3.3 for循环语句
for(初始化表达式;循环条件表达式;末尾循环体){
中间循环体;
}
for后面的括号内由3部分组成:第一部分为初始化表达式,只在首次循环开始前执行一次;第二部分为循环条件表达式,与while后面的表达式作用相同;第三部分一般用来更新与循环条件有关的变量。在每次循环的最后执行,可称为末尾循环体。
3.4 foreach循环
在JDK1.5之后Java有提供了一种跟家简洁的循环语句——foreach循环。这种循环语句主要用于遍历数组和集合。用法如下:
for(type v:array|collection){
//通过变量v访问数组火鸡和中的每一个元素
}
上述语法格式中,type是数组array元素或集合collection元素的类型,变量v是该类型的一个临时变量。foreach循环会自动将数组array元素或集合collection元素中的每个值依次赋值给变量v,然后在foreach循环内部通过变量v访问数组或集合中的每一个元素。
显然与普通的for循环不同,foreach循环不需要指定数组的长度,也无须通过数组的索引(下标)来访问数组元素,同时没有循环条件,而是要遍历整个数组或集合。