java如何让他们优先运算_java运算符优先级与流程控制

1. Java 的方法Method (函数 Function), 功能, 动作

1) 方法就是函数: y=f(x)=3x+6;

2) 方法的语法

(修饰词)(返回值类型)(方法名)(参数列表){

//方法体

}

public static void main(String[] args){}

如:

public static int f(int x){

int y = 3 * x + 6;

return y;

}

4) 如果有返回值定义就必须有return语句, 返回和返回值类型

兼容的数据

5) 方法的参数和方法内部的变量 都是局部变量,

这些变量作用域只在方法内部!

6) 实参: 方法调用时候实际传递的参数变量

形参: 方法的参数定义,是临时变量.

2. Java 运算符

1) 算数运算符  + - * / %

A. 运算的封闭性(补码运算的封闭性):

1.同种类型参与运算(可能需要自动类型转换)

2.返回同种类型(可能发生:上溢出和下溢出)

3.byte, short, char 按照int运算

如: int a = 1 + 'A';

B. 整数的除法是整除, 除以2相当于移位运算(移动小数点)

C.Java中字面量的运算被Javac优化了, 优化为一个固定的常量.

D. % 计算除法的余数

1. 0 对其他数的 余数 是0

2. n%3 是 周期函数, 函数值 [0,3)

3. 负数的余数是负数(考试可能出现, 工作中很少用)

2)关系运算(*****)

==   !=    >     >=   

a.关系运算符的结果是boolean值。

b. ==    判断左右俩个操作数是否相等

3)自增(减)运算符(*****)

i++       i--

++i        --i

i++: 先将i的值赋值给i++,然后i在自增1.

++i:先让i自增1,然后将i的值赋值给++i;

eg:  int i = 20;   int b = i++;        i = 21;   b  =20;

int i = 20 ;  int b = ++i;         i =21, b =21;

4)逻辑运算符(*****)

&&      ||    !          &      |         ^

&&:短路逻辑与      俩个表达式都是true结果是true,否则是false;

||:短路逻辑或     俩个表达式只要有一个是true,结果是true,

! :逻辑非        !true= false      !false=true

a.逻辑运算符的结果一定是boolean值,操作数是boolean表达式。

b.经常使用短路的逻辑或和短路的逻辑与。

短路的与,在发现第一个表达式是false了。第二个表达式不执行了。

非短路的与,在发现第一个表达式是false了,第二个表达式还要执行。

短路的或:在发现第一个表达式是true,第二个表达式不在执行。

非短路的或:在发现第一个表达式是true,第二个表达式还要执行。

&:非短路的与

| :非短路的或

^:逻辑异或:  俩个操作相同结果是false,俩个操作数不同结果是true.

5)条件运算符(三目运算符号)(****)

条件表达式?表达式1:表达式2;

判断一个数能被另外一个数整除,取余看结果是否等于0。

判断一个数是否是奇数还是偶数,对2取余看结果是否等于0;

6)赋值运算符(*****)

=         +=    -=      *=     /=      %=

int age = 23;

age +=2;//等价于 age = age+2;

age *= 2;//等价于 age= age*2;

注意:

=     赋值运算符。

==:  关系运算符  判断俩个数是否相等。

7)移位运算符

&:按位与

| : 按位或

^: 按位异或

~:按位取反

<<:>

>>:有符号右移

>>>: 无符号右移

移位运算性能比较高。

位运算是在二进制的基础上进行的。

最后的结果是数。

7)运算符的优先级和结合性:

int i = 1+2+3+4;  从左向右

int a = 23;    从右向左

a.    = 的优先级最低,()的优先级最高。

b.    如果想让优先级的运算符先运算,可以加()控制;

c.    算术运算符 >  关系运算符 >逻辑运算符

d.    在逻辑运算符中,     ! >  && >  ||

e.    从右向左结合只有 赋值运算符,   三目运算符,单目运算符,其他运算符的结合性都是从左向右。

3. 分支流程控制

1) if ... else

语法: if(布尔表达式){

//语句块..

}else{

//语句块

}

嵌套: if(布尔表达式1){

//...

}else if(布尔表达式2){

//...

}else if(布尔表达式3){

//...

}else{

//...

}

if(){

if(){

if(){

//?

}

}

}

2) switch ... case

语法: switch: 开关, case: 情况下

switch(整数表达式){

case 整数常量1:

//语句序列

break;

case 整数常量2:

//语句序列

break;

default:

//语句序列

}

A. switch条件: 只能是整数(int byte char short)表达式

switch 不能处理long 或其他类型

B. case 只能是整数(int byte char short)常量, 不能使用

变量及表达式. 如: '中'

C. break 跳转到switch结束继续执行, 可以根据业务逻辑是否使用

经常都写break

4. 循环控制

1) While 循环控制

语法:

while(布尔表达式){

//循环体 语句序列

}

若有不完善的地方请大家多提意见,转发时请注明出处!

你可能感兴趣的:(java如何让他们优先运算)