java基础知识day04

一、运算符

A,算术运算符(+ - * / % ++ --)

注:+号:可以作为连接符号,当左右两边有一个操作数是String字符串类型的时候,此时+是连接符号,将左右两边的操作数连接成一个新的字符串。

%:eg:10%3=10除以3取余数

++ --:如果是单独一条语句时,++和--在前后没有区别,都是自增1或者自减--,如果不是一条单独语句,++和--区分先后:前:先自增、自减,再运算;后:先运算,再自增、自减。

B、赋值运算符 (=)

int num=10;

C、扩展运算符(+= -= *= /=)

扩展运算符的优势:

  1. 提升了开发效率

  2. 提升了编译效率

  3. 可以自动强制类型转换

扩展运算符的劣势:

阅读体验差

D、关系运算符(> < >= <= != == instanceof)

注:

  1. 最后的结果是一个boolean值

  2. > < >= <=只能比较基本数据类型中除了boolean以外的类型

  3. == !=所有的类型都可以比较

  4. instanceof 只能比较某个变量是否从属于某个类型,只能比较引用类型。

E、逻辑运算符(& && | || ^ !)

注:

  1. 操作数都是boolean值

  2. 结果都是boolean值

  3. &和&& 如果有一个操作数是false,其结果就是false,&&第一个操作数如果是false,则第二个操作数不参与运算,直接得到结果false;

  4. |和|| 如果有一个操作数是true,其结果就是true,||第一个操作数如果是true,则第二个操作时不参与运算,直接得到结果true:

  5. !取反 ^相同为false,不同为true

F、条件运算符(三目运算符)

表达式1?表达式2:表达式3

注:

  1. 先计算表达式1的值,如果表达式1的值是true,则整个条件运算符的结果是表达式2的值,反之是表达式3的值;

  2. 一定要保证表达式2和表达式3的类型一致,因为如果不一致会触发类型转化。

G、位运算符(& | ^ ~ >> << >>>)

& 同1为1

| 有1为1

^ 相同0不同1

~ 所有位0变1,1变0

>> M>>N =M/2^N 右侧省略N位,通过符号位补充左侧

<< M<<N =M*2^N 左侧省略N位,通过0补充右侧

>>> 右侧省略N位,通过0补充左侧

二、流程控制

顺序流程:自上而下进行;

分支流程:在执行的过程中,遇到一些条件,导致程序开始按照不同的执行流程继续顺序执行。

循环流程:在执行的过程中,我们要求程序执行某些代码片段执行N次,可以不需要重复编写。

  • 分支流程

  1. if分支

单分支结构

语法结构:if(expression){

statement1;

…………

statementN;}

执行顺序:1、判定表达式的结果

2、如果表达式是true,执行if对应的执行语句,执行结束之后,整个if执行完成,执行后续代码逻辑

3、如果表达式是false,则跳过整个if单分支结构,执行后续代码逻辑

双分支结构

语法结构:if(expression){

statement1;

…………;

statementN;

}else{

statement1;

…………;

statementN;}

执行顺序:1、判定表达式的结果

2、如果表达式是true,执行if对应的执行语句,执行结束后,整个if-else执行完成,执行后续代码逻辑

3、如果表达式是false执行else对应的执行语句,执行结束之后,整个if-else执行完成,执行后续代码逻辑

多分支结构

语法结构:if(expression){

statement1;

…………;

statementN;

}else if(expression){

statement1;

…………

statementN;

}else if(expression){

statement1;

…………

statementN;

}…………{

}else{

statement;

}

执行顺序:1、判定表达式1的结果,如果是true执行对应的执行语句,结束整个多分支,如果是false,判定表达式2

2、如果表达式2的结果为true,执行对应的执行语句,结束整个多分支,如果是false,判定表达式3

3、依次类推,如果所有的表达式都不满足,则执行else语句

2.switch分支

语法结构:

switch(expression){

case value1:

statement1;break;

case value2:

statement2;break;

…………

case valueN:

statementN;break;

default:

statement;

}

执行顺序:1、计算表达式的结果,依次匹配对应的case

2、如果匹配上了,则执行对应的执行语句,结束整个switch

3、如果所有的case都不匹配,则执行对应的default(存在)

注意事项:1、记得执行语句后面加break防止case穿透

2、利用case穿透少写代码

3、表达式的值一定是:byte、short、char、int中的一个,或者是Enum枚举,或者是String

4、switch一定程度上效率是高于if的,switch是等值判定,if是区间判定

  • 循环流程

1、while循环

语法结构:

while(expression){

//loop-statement;

}

执行顺序:

1、判定表达式的值,如果是false,则跳过整个while循环

2、如果表达式的值是true,则执行循环体一次

3、再继续判定,直到条件不满足,结束整个while循环

注意事项:不知道循环执行多少次,但是知道什么时候停止。

2.do-while循环

语句结构

do{

// loop-statement;

}while(expression);

执行顺序:

1、先执行循环体一次

2、判定循环条件,如果是true继续执行循环体,直到条件不满足为止

3、如果条件是false,则结束整个do-while循环

注意事项:使用do-while的场景比较少,唯一的就是,需要通过循环体的计算来判定循环条件

3.for循环

语法结构

for( ; ; ){

statement;

}

或者是

for(int i=x;x<=m;i++){

statement;

}

执行顺序

1、声明循环变量

2、判定循环条件,如果是true执行循环体一次

3、如果是false跳过for循环

注意事项:for循环能够确定循环次数,for循环的循环变量是省内存的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0.2℃Lover

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值