day03 Java基本语法(中)

核心内容

  • 扩展赋值运算符

  • 逻辑或| 与短路||

  • 逻辑与&与短路与&&

  • 位运算符

  • 交换变量的三种方法

  • if条件表达式注意点

  • 三元运算符

  • 扩展赋值运算符: +=, -=, *=, /=, %=

short s = 3;

s = s+2; ①//编译不通过

s += 2;   ②//编译通过,且s=5

byte b = 10;

b = b + 2; //编译不通过,因为byte做运算会先将自身提升为int

b += 2; //编译没问题 :不会改变原来的数据类型。

int i = 1;

i *= 0.1;

System.out.println(i);//0

i++;

System.out.println(i);//1

  • 逻辑运算符

    • 逻辑与(&)、短路与(&&)

    • 逻辑或(|)、短路或(||)

    • 逻辑非(!)

    • 逻辑异或(^):两个相同则为false,不同为true

    • 逻辑运算结果只能为 true 或 false

  • 逻辑与 & 和 短路与 && 的区别是什么:

    • 左边式子为 true 时,右边的式子会执行

    • 左边的式子为false 时,&& 右边的式子不执行

  • 逻辑或 | 与 短路或 || 的区别是什么:

    • 左边的式子为false时,左右都执行

    • 左边的式子为false时,|| 右边的式子不执行

  • 位运算符

    • << (左移) :在一定范围内,每向左移一位那么原来的数乘以2

    • >> (右移) :在一定范围内,每向右移一位原来的数除以2

    • >>(右移) :如果是正数最高位用0补,如果是负数最高位用1补。

    • >>>(无符号右移) :无论正数还是负数,最高位都是用0补

System.out.println(3 << 1);//6

System.out.println(3 << 2);//12

System.out.println(3 << 3);//24

System.out.println(1 << 31);

System.out.println(6 >> 1);

System.out.println(3 >> 1);

System.out.println(-3 >> 1);

System.out.println(6 >>> 1);

System.out.println(-6 >>> 1);

  • 交换两个变量中的数据的三种方法

int n = 5, m = 10;

  • //方式一:必须会(优点:任何数据类型都可以交换。缺点:需要一个另时变量)

/*

int temp = m;

m = n;

n = temp;

*/

  • //方式二:(优点 :不需要再申请额外的变量  缺点:1.只能用于数值 2.有可能会超过表数范围)

/*

m = m + n;

n = m - n; //(m + n) - n

m = m - n; //(m + n) - n(m)

*/

  • //方式三:(优点 :1.不需要申请额外的变量  2.效率高   缺点:1.不容易理解 2.只能用于数值 )

m = m ^ n;

n = m ^ n; //(m ^ n) ^ n

m = m ^ n; //(m ^ n) ^ n(m)

  • if条件表达式

    • 如果多个条件表达式的范围是互斥关系,那么谁上谁下都可以。

    • 如果多个条件表达式的范围是包含关系,那么范围小的在上面,范围大的在下面。

    • else可以省略。但是省略后可能会导致没有任意一个条件是满足的。

    • 在if-else中如果执行语句只有一条,那么大括号可以省略

    • else //就近原则-离哪个if最近就和谁是一对

if(true)

if(false)

System.out.println("cccc");

else //就近原则-离哪个if最近就和谁是一对

System.out.println("ddddddd");

/*

if(score == 100){

System.out.println("嘿嘿 哈哈 嘻嘻 宝马就停在门口");

}else if(score >= 60 && score <= 80){

System.out.println("知道,知道 ipad明天给你买");

}else if(score > 80 && score <= 99){

System.out.println("恩 还可以 iphone xs max 已经在路上了");

}else{

System.out.println("还想要东西,看我回去不打死你");

}

*/

//下面的方式必须考虑范围的大小。

if(score == 100){

System.out.println("嘿嘿 哈哈 嘻嘻 宝马就停在门口");

}else if(score > 80){

System.out.println("恩 还可以 iphone xs max 已经在路上了");

}else if(score >= 60){

System.out.println("知道,知道 ipad明天给你买");

}else{

System.out.println("还想要东西,看我回去不打死你");

}

  • 三元运算符

    • 格式:(条件表达式)?表达式1 :表达式2;

    • 说明:

    • ①条件表达式的结果只能为布尔类型

    • ②表达式1和表达式2的类型应该保持一致

如果表达式1和表达式2可以自动类型提升成一样的类型那么也可以。

例 :double max = (m > n)? 10.2 : 5;

  • ③三元运算符可以被if-else所替换,反之不成立。两者都可以使用的情况下,我们优先选择三元运算符。因为三元运算符效率会快一些。

总结Summary

  • 逻辑与 & 和 短路与 && 的区别

  • 逻辑或 | 和 短路或 || 的区别

  • 实现两个数交换的三种方法

  • if 语句的注意点

转载于:https://www.cnblogs.com/bigdatahub/p/11254161.html

Java编程基础阶段笔记 day03 Java基本语法(中)相关推荐

  1. Java编程基础阶段笔记 day04 Java基础语法(下)

    ​ 面向对象编程 笔记Notes 面向对象三条学习主线 面向过程 VS 面向对象 类和对象 创建对象例子 面向对象的内存分析 类的属性:成员变量 成员变量 VS 局部变量 类的方法 方法的重载 可变个 ...

  2. java编程基础笔记_Java编程基础阶段笔记 day01 Java语言概述

    常用的DOS命令 dir :    列出当前目录下的文件以及文件夹 md :   创建目录 rd :     删除目录 cd :    进入指定目录 cd.. :  退回到上一级目录 cd\:     ...

  3. Java编程基础阶段笔记 day 07 面向对象编程(上)

    ​ 面向对象编程 笔记Notes 面向对象三条学习主线 面向过程 VS 面向对象 类和对象 创建对象例子 面向对象的内存分析 类的属性:成员变量 成员变量 VS 局部变量 类的方法 方法的重载 可变个 ...

  4. Java编程基础阶段笔记 day06 二维数组

    二维数组 笔记Notes 二维数组 二维数组声明 二维数组静态初始化与二位初始化 二维数组元素赋值与获取 二维数组遍历 二维数组内存解析 打印杨辉三角 Arrays工具类 数组中常见的异常 二维数组 ...

  5. java编程基础素数实验报告,JAVA 基础编程练习题1 (输出素数)

    JAVA 基础编程练习题1 (输出素数) JAVA 基础编程练习题1 (输出素数) 题目:判断 101-200 之间有多少个素数,并输出所有素数. 程序分析:判断素数的方法:用一个数分别去除 2 到 ...

  6. java编程基础码_【Java编程的逻辑】编程基础

    数据类型和变量 数据类型用于对数据归类,以便于理解和操做. - 整数类型:byte/short/int/long, 分别有不一样的取值范围 - 小数类型:float/double,有不一样的取值范围和 ...

  7. 遍历二维数组_Java编程基础阶段笔记 day06 二维数组

    二维数组 笔记Notes 二维数组 二维数组声明 二维数组静态初始化与二位初始化 二维数组元素赋值与获取 二维数组遍历 二维数组内存解析 打印杨辉三角 Arrays工具类 数组中常见的异常 二维数组 ...

  8. java编程一般类抽象类的定义,Java编程基础抽象类

    本文主要是讲述Java编程基础-抽象类,更多Java技术知识,请登陆疯狂软件教育官网. 抽象类: 抽象:不具体,看不明白关键字abstract 抽象类的特点: 1.抽象方法只能定义在抽象类中,抽象类和 ...

  9. java中的常用名词,Java编程基础常见英语词汇

    Java编程基础常见英语词汇 Java编程基础中常见英语的词汇有哪些呢?这些都是学Java编程需要运用到的,下面内容由小编为大家介绍Java编程基础常见英语词汇,供大家参考! Java编程基础常见英语 ...

  10. 01.Java 编程入门学习笔记20210307

    Java 编程入门学习笔记-day01 第0章:编程入门 1.计算机的概述 计算机 = 硬件 + 软件 1.1硬件:冯诺依曼体系 CPU: CPU的衡量标准:速度的计量单位是赫兹(Hz),1Hz相当于 ...

最新文章

  1. gridsearchcv参数_使用python进行模型参数调优
  2. (转)asp和asp.net区别
  3. java mp3 暂停,Java MP3播放器 - 使用jLayer播放,暂停和搜索不能正常工作
  4. Linux CentOS7.0下JAVA安装和配置环境变量
  5. Erlang命令行提示符汇总
  6. 2015第29周五AOP
  7. Dynamo:亚马逊的高可用键值存储
  8. NetBeans 7.4的本机Java打包
  9. 删除ELK中的数据。。
  10. 学生宿舍管理系统HTML代码,学生宿舍管理系统源代码.doc
  11. 角点(corner point)、关键点(key point)、特征点(feature point)概念辨析
  12. java ftp 卡死_ftpclient卡死问题
  13. CSS两种盒模型(标准盒模型IE盒模型)
  14. Python视频处理(3)——提取视频字幕
  15. BUUCTF:[INSHack2018]Self Congratulation
  16. 莫名其妙出现各种syntax error的解决方案
  17. Java显示文件层级目录函数_[转载]文件和目录复制函数
  18. 苹果净利润同比下滑19%,大中华区下滑30%;养老基金将入股市投资,首批可能达2000亿元
  19. 他整整用了两个月的时间,终于如愿的拿到阿里offer了!
  20. “贵系万花筒”:探秘清华计算机系背后的“酒井”文化

热门文章

  1. php二维数组的某一字段 做分组统计
  2. ubuntu 的重要一课
  3. weiapi2.2 HelpPage自动生成接口说明文档和接口测试功能
  4. java调用ant工具
  5. iOS Xcode7.2 is Not on Any Development Teams
  6. 一个注解搞定 Spring Boot 日志!还有谁不会?
  7. Java Web架构演变
  8. Spring Boot 项目优化和Jvm调优 (楼主亲测,真实有效)
  9. 2016年度最受欢迎的100个Java库
  10. 没项目经验难就业?推荐你参加“大学生就业特训营” | 100 个免费名额,先到先得!...