第二周总结
作者:互联网
运算符
算术运算符
基本的算术运算符: + - * / %(模,求余) 注意事项: Java中 /:默认取整 3/4 = 0 ; Java中 %:求余数
算术运算符扩展写法: ++(自增) --(自减) 关于他们的使用方式: 两种场景: 1)单独使用 无论在数据前还是或者数据后:都是对当前变量的值进行自增1或者自减1 应用场景:循环语句中有一个控制体语句(步长语句) 2)参与运算使用 在数据前: 先将当前变量本身的值进行自增1或者自减1,然后在参与运算! 在数据后: 先运算,然后变量的本身的值进行自增1或者自减1;
赋值运算符
基本的赋值运算符: = 例: int a = 10 ; 表示的意思:将10赋值给int类型的变量a 注意事项: =不能写成==,反之,==不能写成=;冲突的
扩展的赋值运算符: +=, -=, *=, /=, %= 例: a += b/100;(a = a+b/ a+100;) 其他原理一样 强制转换: s = (short)(s+1) ;
关系运算符/比较运算符
<, >, <=, >=, ==, != 无论表达式简单还是赋值,最终都是boolean(true/false) 注意: ==不能写成"=" ==:比较连接的两个基本数据类型(目前使用的基本类型),比较数据值相同 String:引用类型(常用类的重点类:功能非常多) 比较数据是否相同,使用的"equals方法"
逻辑运算符
基本逻辑运算符 逻辑单与&: 并列关系 结论:有false,则false; 多个条件必须同时满足才成立! 逻辑单或|: 有true,则true; 多个条件,满足一个即可成立! 逻辑异或^: 相同则为false,不同则为true; 简单记: 男女关系 男男 女女:false 男女 女男 :true 逻辑非!: 非true,则false;非false则true!
扩展的逻辑运算符(推荐) 逻辑双与&& 特点: 逻辑双与&&:当符号左边的表达式为false,右边不执行了,具有短路效果 ; 逻辑双或|| 特点: 当这个符号左边表达式为true,则右边不执行了,具有短路效果;
位运算符
位与 & : 有0则0 位或 | : 有1则1 位异或 ^ :相同则为0,不同则为1 一个数据被另一个数据位异或两次,其值是它本身 反码 ~ :按位取反,全部都0变1,1变0
位移符号: << : 左移 将这个数据(补码)左移动,右边不够的补1,左边不够的补0,将左边多余的移动位数丢掉; >>:右移 将这个数据(补码)向右移动指定的位数;如果最高符号位为0,左边补0; 如果最高符号位为1,左边补1;将右边的多余的数据丢弃掉; >>>:无符号右移 无论最高符号位是1还是0,始终左边补0;(使用补码无符号右移) 运算: << : 将<<符号左边数据乘以2的移动次幂 >> : 将>>符号左边的数据除以2的移动次幂 例 : 2 << 3 2左移3位:2*2^3
三元运算符/三目运算符
格式 : (表达式) ? 语句1 : 语句2; 执行的流程: 先判断表达式的结果是否成立,如果结果为true,就执行成立的语句1; 否则不成立,则执行不成立的语句2; 例 : int x = (a > b)? a : b ;
键盘录入数据
使用步骤: 1)导包 用哪个一类,就需要导入到当前Java文件中(只要不是java.lang包下的类,都需要导入) 固定写法: import java.util.Scanner; //用谁导谁 书写位置:在class的上面 2)固定格式:创建文本扫描器对象 Scanner 对象名 = new Scanner(System.in) ; //对象名:自己起名字 3)提示并录入数据 (默认录入int类型) System.out.println("请您输入数据:") ; int 变量名= 对象名.nextInt() ; //录入一个int类型的数据 4)完成自己的业务操作:使用这个变量名(求两个数据是否相等/比较数据最大值等等...) 录入字符串: String a = sc.nextLine() ; String b = sc.next() ; 例: import java.util.Scanner; class Demo{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("请您录入一个数据:"); int a = sc.nextInt(); System.out.println("您输入的数据是"+a); } }
流程控制语句
顺序结构语句
当进入到类中之后,jvm调用main方法,代码由上而下依次加载 除非一种特例:当jvm退出了就不会进行执行了! 后期System类中有一个功能:exit(int status) 参数里面为0,表示正常终止jvm 例: class ShunXuDemo{ public static void main(String[] args){ //程序的入口 //定义变量 int a = 10 ; //局部变量(在方法定义中的变量) System.out.println("a:"+a) ; System.out.println("程序开始了...") ; System.out.println("......") ; //让Jvm退出(正常终止正在运行的jvm),main方法就结束了 System.exit(0) ; (有0,程序在这里终止) System.out.println("程序结束了...") ; System.out.println("over...") ; } }
选择结构语句
if
if格式1: if(表达式){ 语句; } 应用场景:针对一种情况判断 执行流程: 1)首先表达式是否成立,成立,则执行该语句 2)不成立,不会进入if里面;
if格式2: if(表达式){ 语句1; }else{ 语句2; } 应用场景:针对两种情况进行判断 执行流程: 1)先判断表达式是否成立,如果成立,执行执行语句1; 2)如果不成立,则执行语句2;
if语句格式3 if(表达式1){ 语句1 ; }else if(表达式2){ 语句2; }else if(表达式3){ 语句3; ... ... ... }else{ 语句n+1; } 应用场景:针对多种情况进行判断 执行流程: 1)首先判断表达式1是否成立,如果成立,则执行语句1; 2)如果上面表达式1不成立,继续判断表达式2是否成立,如果成立,执行语句2 3)如果表达式2也不成立,继续判断表达式3是否成立,如果成立,执行语句3 ... ... 4)如果上面的条件表达式都不成立,则执行最终语句n+1 ;
另: 比较两个字符串是否相等 equals(String str): 例: (a.equals(b)) b:已知 a是否等于b
switch
格式: switch(表达式){ case 值1: 语句1; break ; case 值2: 语句2; break ; ... ... ... default: 语句n+1 ; break; } 执行流程:很类似于if格式3 1)switch中的表达式的结果值和case语句匹配,值1和结果匹配, 就执行语句1,遇见break,switch结束; 2)值1和switch表达式结果不匹配,继续判断值2是否匹配,如果匹配,就执行语句2,switch语句结束 ... ... 3)如果case语句后面值都不匹配,这个执行default语句,执行语句n+1,程序执行到末尾结束... break:属于跳转控制语句中的一种 结束,中断意思 (不能单独使用,只能在switch和循环语句中使用) 注意事项: 1)case语句后面只能是常量(Java是一个强类型语言: 语法,结构非常严谨) 相对来说:前端:javascript :简称"js",Switch语句的case中不仅可以常量,也可以是变量 是一个弱类型语言(语法结构非常不严谨) 2)case语句中beark 最好携带上,如果没有携带break语句,会造成"case穿透" "case穿透": (要灵活使用,并不是说这个情况不好) 某个case语句中没有带break,此时当跟case的值匹配,这个时候继续就往下执行,不会在判断case! 3)default语句可以在switch语句中的任何位置,不会影响switch的执行流程 如果在语句中, default里面的break千万不能省略;省略,造成case穿透(考点) 如果在语句末尾,break可以省略不写,前期不建议 4)switch语句的结束条件是什么? a)遇见break结束 b)程序默认执行到末尾
循环结构语句
for
格式: for(初始化语句;条件表达式;步长语句/控制体语句){ 循环体语句; } 执行流程: 1)初始化语句对变量进行赋值 2)判断条件表达式是否成立; 如果是成立,执行循环体语句; 3)继续执行控制体语句 4)继续回到2)里面判断 如果是成立,执行循环体语句; 继续回到3) ... ... ... 一直执行到条件不成立结束;
for嵌套
格式 for(初始化语句;条件表达式;控制体语句){---外层循环 循环体语句 for(初始化语句;条件表达式;控制体语句){---内层循环 循环体语句... } } 将一个for循环语句作为 "循环体"去执行;
while
格式: 初始化语句; while(条件表达式){ 循环体语句; 控制体语句; } 执行流程: 1)先初始化赋值 2)判断条件表达式是否成立,成立,则执行循环体语句- 3)执行控制体语句---继续判断条件是否成立,----循环,,, ... ... 4)执行到条件表达式不成立,while语句结束
do while
格式: 初始化语句; do{ 循环体语句; 控制体语句; }while(条件表达式) ; 执行的流程: 1)初始化语句赋值 2)执行循环体语句 3)执行控制体语句 4)条件表达式判断,如果条件成立,继续执行循环体... ... ... 条件表达式不成立,语句结束;
跳转控制语句
-
break
break: 中断,结束 不能单独使用 1)只能在switch或者循环语句中中使用; 单循环for循环中使用 2)在for循环嵌套中使用 break 标签语句 ;(现在很少见) 给外层循环,或者内层循环起名字--->标签语句;
continue
continue: 继续---->结束当前循环,立即进入下次循环 也不能单独使用 应用场景: JavaSE网络聊天室(集合+多线程+网络编程):某个功能 功能: 上下提醒功能 张三 :HashMap<String,Socket> 集合框架 当遍历集合的时候,如果是张三本身,应该不提醒,使用continue; 李四上线了 李四登录--->
return
return: 返回具体的结果(结束方法) 但是一般return很少单独使用,需要在有具体返回值类型的方法中使用! return 一般都是结合方法使用 return 结果值; 在有返回值类型的方法中使用
标签:总结,语句,...,运算符,第二周,成立,执行,表达式 来源: https://blog.csdn.net/Daitutou_/article/details/120636686