运算符
类型
- 算术运算符
- 关系运算符
- 位运算符
- 逻辑运算符
- 赋值运算符
- 其他运算符
算数预算符
加减乘除
+ - * /
取余
// % 左操作数除以右操作数的余数
int d = 3%2;
System.out.println("取余后:"+d);
// console
// 取余后:1
自增自减
public static void main(String args[]) {
int a = 10;
int d = 25;
// ++ 操作值+1
System.out.println("a++ = " + (a++) );
System.out.println("a-- = " + (a--) );
// 查看 d++ 与 ++d 的不同
System.out.println("d++ = " + (d++) );
System.out.println("++d = " + (++d) );
}
console
a++ = 10
a-- = 11
d++ = 25
#上一步的 d++ 已经将d 赋值为26
++d = 27
注:这里可以发现
++ 放在参数后面的话 是先使用当前参数参与操作
++ 放在参数前面的话 是先进行参数的+1操作后 才进行操作
减减-- 同理
###关系运算符
# 这个就不分析了
== != > < >= <=
位运算符
/**
* @author stone
* @des 位运算符操作测试
* @date 2018/11/28/028 14:41
**/
public class BitwiseOperatorTest {
public static void main(String[] args) {
/* 60 = 0011 1100 */
int a = 60;
/* 13 = 0000 1101 */
int b = 13;
int c = 0;
// 如果相对应位都是1,则结果为1,否则为0
// 60 = 0011 1100
// 13 = 0000 1101
// 12 = 0000 1100
c = a & b;
System.out.println("a & b = " + c);
// 如果相对应位都是0,则结果为0,否则为1
// 60 = 0011 1100
// 13 = 0000 1101
// 61 = 0011 1101
c = a | b;
System.out.println("a | b = " + c);
// 如果相对应位值相同,则结果为0,否则为1
// 60 = 0011 1100
// 13 = 0000 1101
// 49 = 0011 0001
c = a ^ b;
System.out.println("a ^ b = " + c);
// 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
// 60 = 0011 1100
// -61 =1100 0011
c = ~a;
System.out.println("~a = " + c);
// 按位左移运算符。左操作数按位左移右操作数指定的位数。
// 60 = 0011 1100
// 240 =1111 0000
c = a << 2;
System.out.println("a << 2 = " + c);
// 按位右移运算符。左操作数按位右移右操作数指定的位数。
// 60 = 0011 1100
// 15 = 1111
c = a >> 2;
System.out.println("a >> 2 = " + c);
// 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。
// 60 = 0011 1100
// 15 = 0000 1111
c = a >>> 2;
System.out.println("a >>> 2 = " + c);
}
}
逻辑运算符
# 用的太熟了 不分析了
# 或
||
# 与
&&
# 非
!
赋值运算符
=
+=
-=
* =
/ =
# 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数
(%)=
# 左移位赋值运算符
<< =
# 右移位赋值运算符
>> =
# 按位与赋值运算符
&=
# 按位异或赋值操作符
^ =
# 按位或赋值操作符
| =
条件运算符(?:)(三元操作符)
// variable x = (expression) ? value if true : value if false
int a = 60;
String str = (a == 1) ? "真" : "假";
// console "假"
instanceof 运算符
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
// ( Object reference variable ) instanceof (class/interface type)
String name = "James";
boolean result = name instanceof String;
// 由于 name 是 String 类型,所以返回真
语句
循环
-
while 循环
while( 布尔表达式 ) { //循环内容 }
-
do…while 循环
do() { //循环内容 }while(布尔表达式)
-
for 循环
// 基础型 for(初始化; 布尔表达式; 更新) { //循环内容 } // 增强型 for(声明语句:表达式){ // 循环内容 }
break 关键字
break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
break 跳出最里层的循环,并且继续执行该循环下面的语句。
continue 关键字
continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
在 for 循环中,continue 语句使程序立即跳转到更新语句。
在 while 或者 do…while 循环中,程序立即跳转到布尔表达式的判断语句。
if…else
if(布尔表达式)
{
//如果布尔表达式为true将执行的语句
}
switch case
switch(expression){
case value :
//语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句
}