运算符
运算符是一种特殊的符号,用以表示数据的运算,赋值和比较等。
赋值运算符
就是将等号右边的值赋给等号左边的值。
赋值运算符(=,+=,_=,*=,/=,%= 带有强制转换)
例: i+=5 --> i = i+5;
算术运算符与算术表达式
//算数运算符
int in = 10;
double dl = 3.3 + 10 + 'a';
System.out.println(3 * 3);
System.out.println("商:" + 10 / 3);
System.out.println("余数:" + 10 % 3);
自增、自减运算符
++x(x++) 自增:如果放在前面先自增再赋值,如果放在后面是先赋值再自增;
–x(x–)自减 : 如果放在前面先自减再赋值,如果放在后面是先赋值再自减。
int a = 10;
int b = ++a; // ++ 自增 如果放在前面先自增再赋值,如果放在后面是先赋值再自增
System.out.println("a的值:"+a);//11
System.out.println("b的值:"+b);//11
int c = 20;
int d = c--; // -- 自减
System.out.println("c的值:"+c);//19
System.out.println("d的值:"+d);//20
比较运算符(关系运算符)
关系运算符用来判断两个变量或者常量的大小,关系运算符的结果是一个boolean值( true或者false)。
int a = 10;
int b = 20;
int c = 15;
//比较运算符最终得到的是boolean类型结果
System.out.println(a > b);
System.out.println(a < b);
System.out.println(a != b);
System.out.println(a == b);
逻辑运算符
逻辑运算符用于操作两个boolean类型的变量或者常量,逻辑运算符的运算对象只能是布尔型数据,并且运算结果也是布尔型数据。
“&”和“&&”的区别:
- 单&时,左边无论真假,右边都进行运算;
- 双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
- “l”和“|”的区别同理,双或时,左边为真,右边不参与运算。
//逻辑运算符两边是布尔类型
System.out.println(a < c & c < b); //a<c<b
System.out.println("与的结果:"+(true & false));
System.out.println("或的结果:"+(true | false));
System.out.println("取反的结果:"+(!false));
System.out.println("异或的结果:"+(false ^ false));
// &与&& |与|| 最终结果一样
//&&:短路与 ||:短路或
三元运算符(三目运算符)
条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。
- 格式:
(关系表达式)﹖表达式1:表达式2;
如果关系表达式成立(true),则运算后的结果表达式1
如果关系表达式不成立(false),则运算后的结果表达式2 - 要求:
关系表达式结果为bool.ean类型。
表达式1和表达式2的结果类型必须一致。
int op1 = 34;
int op2 = 65;
int op3 = 90;
int temp = op1 > op2 ? op1 : op2;
int max = temp > op3 ? temp : op3;
System.out.println("最大值:"+max);
位运算符
位运算是直接二进制进行运算,运算效率高
与(有零为零),或(有一为一),异或(同零异一)
instanceof 运算符
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。
instanceof运算符使用格式如下:
class Vehicle {}
public class Car extends Vehicle {
public static void main(String[] args){
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println( result); //输出 true
}
}
Java运算符优先级
下表中优先级上行优先于下行
表达式
Java中的语句有很多种形式,表达式就是其中一种形式。表达式由操作数与运算符所组成。
操作数可以是常量、变量,也可以是方法;运算符就是数学中的运算符号如“+”、“-”、“*”、“/”、“%”等。以下面的表达式(z+100)为例,“z”与“100”都是操作数,而“+”就是运算符。
表达式的计算结果必须是一个值,如果表达式是一个条件,就会产生逻辑值结果,即真或假。在其他情况下,值通常为计算的结果。
语句
语句概述
- 方法调用语句
1. System.out.println(“Hello”);
- 表达式语句: 由一个表达式构成一个语句,即表达式尾加上分号。例如 X=23;
- 复合语句: 可以用{ }把一些语句括起来构成复合语句,例如:
1. { Z = 123+x;
System.out.println(“How are you”);
}
- 空语句: 一个分号也是一条语句,称作空语句。
- 控制语句: 分为条件分支语句、开关语句和循环语句.
- package语句和import语句
packge语句和import语句与类、对象有关。 - break和continue语句
是用关键字break或continue加上分号构成的语句,例如: break;
在循环体中可以使用break语句和continue语句。在一个循环中,例如循环50次的循环语句中,如果在某次循环中执行了break语句,那么整个循环语句就结束。如果在某次循环中执行了continue语句,那么本次循环就结束,即不再执行本次循环中continue语句后面的语句,而转入进行下一次循环。
Java条件语句
- if条件分支语句 (区间运算)
if()语句
if()-else语句
if()-else if()-else语句
if (值为boolean类型的条件) {
当条件为 true 时执行的代码
}
else {
当条件不为 true 时执行的代码
}
实例:
public class test3{
public static void main(String args[]) {
int score = 75;
char grade;
if(score >=80) {
grade = 'A';
} else {
grade = 'B';
}
System.out.println("Grade = " + grade);
}
- switch开关语句 (等值运算)
switch语句是单条件多分支的开关语句。
- switch 括号里面填写具体值:
(byte short int char string enum); - switch()值必须要和case值类型相互兼容;
- case 值不能一致;
- 首先会先把switch里面值和case进行比较。如果匹配到case的值那么就会执行响应case里面的代码块。直到遇到break为止,如果没有break那么就会继续执行下一个case里面的值,直到遇到break为止。如果switch里面值与case的不匹配则会执行default里面的代码块,直到遇到break为止。
public class test7{
public static void main(String args[]) {
int x=3;
switch(x) {
case 1: System.out.println("一月");break;
case 2: System.out.println("二月");break;
case 3: System.out.println("三月");break;
case 4: System.out.println("四月");break;
}
}
}
循环语句
- for循环语句
循环可以将代码块执行指定的次数。
for (语句 1; 语句 2; 语句 3)
{
被执行的代码块
}
for语句由关键字for、一对小括号0中用分号分割的三个表达式,以及一个复合语句组成,其中的表达式2必须是一个求值为boolean型数据的表达式,而复合语句称作循环体。循环体只有一条语句时,大括号{}可以省略,但最好不要省略,以便增加程序的可读性。表达式1负责完成变量的初始化;表达式2是值为boolean型的表达式,称为循环条件;表达式3用来修整变量,改变循环条件,为迭代出口。for 语句的执行规则是:
- (1)计算表达式1,完成必要的初始化工作。
- (2)判断表达式2的值,若表达式2的值为true, 则进行(3),否则进行(4)。
- (3)执行循环体,然后计算表达式3,以便改变循环条件,进行(2)。
- (4)结束for语句的执行。
public class test4{
public static void main(String args[]) {
for(int i=0;i<=10;i++){
System.out.println(i);
}
}
}
- while 循环语句
先判断,后执行循环体中的代码语句,只要布尔表达式为 true,循环就会一直执行下去
int x = 10;
while( x < 20 ) {
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}
- do…while 循环语句
先执行循环体中的代码语句, 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。
public class test6{
public static void main(String args[]) {
int i = 0;
do {
System.out.println(i);
i++;
} while(i<=10);
}
}