目录

一. 运算符

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循环不需要指定数组的长度,也无须通过数组的索引(下标)来访问数组元素,同时没有循环条件,而是要遍历整个数组或集合。