zoukankan      html  css  js  c++  java
  • 2019-05-12 Jave学习日记之运算符&if语句

    算术运算符的基本用法

    A:什么是运算符?

    就是对常量和变量进行操作的符号

    B:运算符的分类:

    算数运算符、赋值运算符、比较(关系或条件)运算符

    逻辑运算符、位运算符、三目(元)运算符

    C:算术运算符:+,-,*,/,,%,++,--

    D:注意事项:

    a:+号在java中有三种作用,代表正号、做加减运算、字符串连接符

    b:整数相除只能得到整数。如果想得到小数,必须把数据变化成浮点数类型

    c:/ 获取的是除法操作的商,%获取的是除法操作的余数

    %运算符:

    1、当左边的绝对值小于右边绝对值时,结果是左边

    2、当左边的绝对值等于右边或者右边的倍数时,结果为0

    3、当左边的绝对值大于右边绝对值时,结果是余数

    4、%运算符结果的符号只和左边有关系,与右边无关

    5、任何一个正整数%2的结果不是0就是1,可以用来当作切换条件

    算术运算符++和--的用法:

    a:单独使用:

    放在操作数的前面或者后面效果一样。(这种用法比较常见)

    b:参与运算使用:

    放在操作数前面,先自增或者自减,然后再参与运算

    放在操作数后面,先参与运算,再自增或者自减

    面试题:

    short s = 1;s = s + 1  

    当short与int进行运算时,会提升为int类型,两个int类型相加的结果也是int类型

    位运算符的基本用法:

    &,|,^,~ 的用法:

    &:有0则0

    |:有1则1

    ^:相同则0,不同则1

    ~:按位取反

    位异或运算符的特点:

    ^ 的特点:一个数据对另一个位异或两次,该数本身不变

    <<:左移  左边最高位丢弃,右边补齐0

    >>:右移  最高位是0,左边补齐0;最高位是1,左边补齐1

    >>>:无论最高位是0还是1,左边补齐0

    左移,向左移动几位就是乘以2的几次幂

    右移,向右移动几位就是除以2的几次幂

    if语句

    逻辑与:&

    遇false则false

    逻辑或:|

    遇true则true

    逻辑异或:^

    相同则false,不同则true

    逻辑非:!

    非false则true,非true则false

    特点:偶数个不改变本身

    if语句格式:

    if(比较表达式){

      语句体;

    }

    执行流程:

    1、先计算比较表达式的值,看其返回值是true还是false

    2、如果是true,就执行语句体;

    3、如果是false,就不执行语句体;

    选择结构if语句注意事项:

    a:比较表达式无论简单还是复杂,结果必须是boolean类型

    b:if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。最好永远都不要省略!

    c:一般来说:有左大括号就没有分号,有分号就没有左大括号

    if语句的格式2:

    if(比较表达式){

      语句体1;

    }else{

    语句体2;

    }

    执行流程:

    1、首先计算比较表达式的值,看其返回值是true还是false

    2、如果是true,就执行语句体1

    3、如果是false,就执行语句体2

    注意事项:

    else后面是没有比较表达式的,只有if或者else if后面有!

    if语句的格式2和三元运算的相互转化问题:

    三元运算符能实现的,都可以采用if语句来实现,反之则不成立!

    什么时候if语句实现不能用三元改进?

    当if语句控制的操作是一个输出语句的时候就不能。

    为什么呢?因为三元运算符是一个运算符,运算符操作完成就应该有一个结果,而不是一个输出。

    switch语句

    A:switch语句的格式:

    int x = 10;

    switch(表达式){

      case 值1:

        语句体1;

      break;

      case 值2:

        语句体2;

      break;

      ……

      default:

        语句体n+1;

      break;

    }

    B:面试题:

    byte可以作为switch的表达式吗?  (可以)

    long可以作为switch的表达式吗?  (不可以)

    string可以作为switch的表达式吗?  (JDK1.7后可以)

    C:执行流程:

    1、先计算表达式的值

    2、然后和case后面的匹配,如果有就执行对应的语句,否则执行default控制的语句

    &与&&的区别:

    电路问题:

    对于&:不管怎样都会执行”&“符号左右两边的程序

    对于&&:只有当符号”&&“左边的程序为真(true)后,才会执行符号”&&“右边的程序。

    运算规则:

    对于&:只要左右两边有一个false,则为false;只有全部都为true的时候,结果才为true。

    对于&&:只要符号左边为false,则为false,当左边为true,同时右边也为true,结果才为true。

    总结:&与&&两个逻辑运算符结果都是一样的,只是&&有短路的功能,而&没有。

  • 相关阅读:
    Core Animation 文档翻译—附录C(KVC扩展)
    Core Animation 文档翻译—附录B(可动画的属性)
    Core Animation 文档翻译—附录A(Layer样貌相关属性动画)
    Core Animation 文档翻译 (第八篇)—提高动画的性能
    Core Animation 文档翻译 (第七篇)—改变Layer的默认动画
    Core Animation 文档翻译 (第六篇)—高级动画技巧
    Core Animation 文档翻译 (第五篇)—构建Layer的层次结构
    用Markdown快速排版一片文章
    Core Animation 文档翻译 (第四篇)—让Layer的content动画起来
    Core Animation 文档翻译(第三篇)—设置Layer对象
  • 原文地址:https://www.cnblogs.com/clqbolg/p/10851860.html
Copyright © 2011-2022 走看看