前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java基础学习_基础语法(上)02_day03总结

java基础学习_基础语法(上)02_day03总结

作者头像
黑泽君
发布2018-10-11 16:38:39
3570
发布2018-10-11 16:38:39
举报
文章被收录于专栏:黑泽君的专栏黑泽君的专栏

============================================================================= =============================================================================

涉及到的知识点有: 0:基本概念概述   1:运算   2:运算符   3:操作数   4:表达式 1:运算符(掌握)   (1)算术运算符(掌握)   (2)赋值运算符(掌握)   (3)比较(关系)运算符(掌握)   (4)逻辑运算符(掌握)   (5)位运算符(了解)   (6)三元(三目/条件)运算符(掌握) 2:键盘录入(掌握) 3:流程控制语句 4:if语句(掌握)   (1)三种格式:   (2)注意事项:   (3)案例:   (4)三元运算符和if语句第二种格式的关系:

============================================================================= ============================================================================= 0:基本概念概述 1:运算     对常量和变量进行操作的过程称为运算。 2:运算符     对常量和变量进行操作的符号称为运算符。 3:操作数     参与运算的数据称为操作数 4:表达式     用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。     不同运算符连接的式子体现的是不同类型的表达式。

举例:     int a = 3 + 4;     这是做了一个加法运算。     +就是运算符,且是算术运算符,我们还有其他很多的运算符。     3,4就是参与运算的操作数据。     3 + 4整体其实就是一个算数表达式。 ----------------------------------------------------------------------------- 1:运算符(掌握) (1)算术运算符(掌握) A:+,  -,  *,  /,  %,  ++,  -- B:+的用法:       a:加法;       b:正号;       c:字符串连接(拼接)符。 例如:System.out.println("x="+x+",y="+y); 如下如图所示00:

C:/和%的区别:       数据做除法操作的时候,/取得是商,%取得是余数。 如下图所示01:

D:++和--的用法: a:他们的作用是:对变量进行自增1或者自减1。 b:使用: **单独使用时:           放在操作数据的前面和后面效果是一样。             即:a++或者++a效果一样。 **参与操作使用时: 放在操作数的前面时:先自增1或者自减1,再参与操作。             int a = 10;             int b = ++a;   //a = 11; b = 11; 放在操作数的后面时:先参与操作,再自增1或者自减1。             int a = 10;             int b = a++;   //b = 10; a = 11; 如下图所示02/03:

--------------------------------------- (2)赋值运算符(掌握) A: 基本的赋值运算符:=       把=右边的数据赋值给左边。 扩展的赋值运算符:+=,   -=,   *=,   /=,   %=,   等等。       += 把左边和右边数据做加法后,然后将结果赋值给左边。 B:=叫做赋值运算符,也是最基本的赋值运算符。       int x = 10;    //把10赋值给int类型的变量x。 C:扩展的赋值运算符的特点:       扩展的赋值运算符隐含了自动强制转换。       即:s += 1;         不是等价于 s = s + 1;         而是等价于 s = (s的数据类型)(s + 1); 面试题:         short s = 1;  //编译有问题,报错,可能损失精度。         s = s + 1;     //short类型参与运算的时候默认转换为int类型。而把int类型赋值给short类型会有问题。         short s = 1; //没有问题。         s += 1;        //因为+=隐含了自动强制转换。 请问上面的代码哪个有问题? --------------------------------------- (3)比较(关系)运算符(掌握) A:==,  !=,  >,  >=,  <,  <=,  instanceof(后面讲) B:无论运算符两端是简单还是复杂最终结果是boolean类型。 C:千万不要把==写成了=了。 D:>=,  <=只要有一个满足即可,即:不管是大于,还是等于;或者不管是小于,还是等于。 如下图所示04:

--------------------------------------- (4)逻辑运算符(掌握)     A: &,    |,    ^,    !,    &&,   || 如下图所示05:

B:逻辑运算符用于连接boolean类型的表达式,在java中不可以写成3<x<6,而是应该写成x>3&x<6。 表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。 例如:           算术表达式:a + b           比较表达式:a == b C:结论: 逻辑与&:有false则false。 逻辑或|:有true则true。 逻辑异或^:相同则false,不同则true。         举例情侣关系:男男为false,女女为false,男女为true,女男为true。 逻辑非!:非true则false,非false则true。         偶数个叹号!不改变布尔类型,奇数个叹号!改变类型。 逻辑双与&&:最终的结果和&是一样的,只不过有短路效果。只要左边是false,右边就不执行。 逻辑双或||:最终的结果和|是一样的,只不过有短路效果。只要左边是true,右边就不执行。         所以双与(双或)的效率更高!!! 小结:在开发中常用的逻辑运算符为:&&, ||, ! 。 --------------------------------------- (5)位运算符(了解)     因为我们一般是做十进制的运算的,而位运算是做的二进制的运算,所以我们一般不需要掌握,但是需要听懂!     因为在底层源码中看大量看到位运算,因为我们的所有的操作在计算机底层都会变成为位运算。可以提高程序的效率。 如下如所示06:

    要做位运算,首先要把数据转换为二进制。而且还得是补码。 如下图所示07:

A:^异或位运算符的特殊用法:       一个数据针对另一个数据位异或两次,该数据本身不变。应用:可以对数据做一个简单的加密如下图所示08:

B:面试题:       以后讲课过程中,若没有明确说明数据类型的话,一般默认int类型。 a:请实现两个int变量的交换。int a = 10; int b = 20; 法一:采用第三方变量(开发中用)。           int c = a;           a = b;           b = c; 法二:用位异或运算符(面试中用)。简记为:等号左边a,b,a 等号右边a^b           a = a ^ b;           b = a ^ b;   //a ^ b ^ b = a = b           a = a ^ b;   //a ^ b ^ a = b = a 法三:用变量相加的方法。           a = a + b;           b = a - b;   //a + b - b = a = b           a = a - b;   //a + b - a = b = a 法四:一句话搞定。           b = (a + b) - (a = b); //b = a + b - b = a b:请用最有效率的方式计算出2乘以8的结果         2<<3 如下图所示09/10:

--------------------------------------- (6)三元(三目/条件)运算符(掌握) 单目运算符:~3 双目运算符:3 + 4 A:三目运算符格式:       比较表达式? 表达式1 : 表达式2; B:执行流程:       首先计算比较表达式的值,看是true还是false。       如果是true,表达式1就是结果。       如果是false,表达式2就是结果。 C:案例: a:获取两个数据中的最大值。         int max = ((x > y)? x : y); b:获取三个数据中的最大值。         法一: int tmpe = ((a > b)? a : b);             int max = ((tmpe > c)? tmpe : c);         法二: int max = (a > b)? ((a > c)? a : c) : ((b > c)? b : c);  //三目运算符的嵌套使用。 c:比较两个数据是否相等。         法一: boolean flag = ((a == b)? true : flase);   //这样写太啰嗦了。         法二: boolean flag = (a == b); 如下图所示11:

----------------------------------------------------------------------------- 2:键盘录入(掌握)   (1)实际开发中,数据是变化的,为了提高程序的灵活性,我们加入键盘录入数据。   (2)如何实现键盘录入数据呢?目前就记住: A:导包:       import java.util.Scanner;       位置:在class定义的上边。 B:创建键盘录入对象:       Scanner sc = new Scanner(System.in); C:通过对象获取数据:       int x = sc.nextInt();   (3)把三元运算符的案例加入键盘录入改进。 ----------------------------------------------------------------------------- 3:流程控制语句 (1)顺序结构:从上往下,依次执行。 (2)选择结构:按照不同的选择,执行不同的代码。 (3)循环结构:做一些重复的代码。   选择结构也称为分支结构。Java语言提供了两种选择结构语句。 1)if语句。 2)switch语句。 ----------------------------------------------------------------------------- 4:if语句(掌握) (1)三种格式: A:格式1:     if(比较/关系表达式) {       语句体;     } 执行流程:       判断比较表达式的值,看是true还是false。       如果是true,就执行语句体。       如果是false,就不执行语句体。 --------------------------------------- B:格式2     if(比较表达式) {       语句体1;     }else {       语句体2;     } 执行流程:       判断比较表达式的值,看是true还是false。       如果是true,就执行语句体1。       如果是false,就执行语句体2。       if语句的第二种格式与三元运算符的区别如下图所示12:

---------------------------------------   C:格式3     if(比较表达式1) {       语句体1;     }else if(比较表达式2) {       语句体2;     }else if(比较表达式3) {       语句体3;     }...       ...     }else if(比较表达式n) {       语句体n;     }     else {       语句体n+1;     } 执行流程:       判断比较表达式1的值,看是true还是false。       如果是true,就执行语句体1。       如果是false,就继续判断比较表达式2的值,看是true还是false。       如果是true,就执行语句体2。       如果是false,就继续判断比较表达式3的值,看是true还是false。       ...       ...       如果都不满足,就执行语句体n+1。 --------------------------------------- (2)注意事项:     A:比较表达式无论是简单还是复杂,结果必须是boolean类型。     B:if语句控制的语句体如果是一条语句,是可以省略大括号的;如果是多条语句,则不能省略。       建议:永远不要省略。     C:一般来说:有左大括号就没有分号,有分号就没有左大括号。 如下图所示13:

    D:else后面如果没有if,是不会出现比较表达式的。     E:三种格式的if语句其实都是一个语句,只要有一个语句体执行,其他的语句体就不再执行。 --------------------------------------- (3)案例:     A:比较两个数是否相等。     B:获取两个数中的最大值。     C:获取三个数中的最大值(if语句的嵌套)。     D:根据成绩输出对应的等级。     E:根据月份,输出对应的季节。     F:根据x计算对应y的值并输出。 如下图所示14:

(4)三元运算符和if语句第二种格式的关系:     所有的三元运算符能够实现的,if语句的第二种格式都能实现。     反之不成立。     如果if语句第二种格式控制的语句体是输出语句,就不可以。     因为三元运算符是一个运算符,必须要求有一个结果返回。不能是一个输出语句。 =============================================================================

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-02-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档