zoukankan      html  css  js  c++  java
  • 逻辑运算符,if、swtch语句(java基础知识三)

    1.逻辑运算符的基本用法

    * A:逻辑运算符有哪些
      &(逻辑与) |(逻辑或) !(逻辑非) ^(逻辑异或) &&(短路与) ||(短路或)

    * 注意事项:
      * a:逻辑运算符一般用于连接boolean类型的表达式或者值。
      * b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
        * 算术表达式:a + b
        * 比较表达式:a == b(条件表达式)

    * B:结论:
      * &逻辑与:有false则false。
      * |逻辑或:有true则true。
      * ^逻辑异或:相同为false,不同为true。
      * !逻辑非:非false则true,非true则false。
      * 特点:偶数个不改变本身。

    2.逻辑运算符&&和&的区别、||和|的区别

    * a:最终结果一样。&无论左边是true还是false,右边都进行运算;
    * b:&&具有短路效果。左边是false,右边不执行。

    * c:最终结果一样,|无论左边是true还是false,右边都进行运算;
    * d:||也具有短路效果,如果左边是true,则右边不执行。

    * e:开发中常用:&&,||,!

     3.位运算符的基本用法,都是转换成二进制进行运算

    * 位运算符
      >>    <<   >>>(无符号)    &    |    ^    ~(反码)

    * &--有0为0,     |--有1就为1,      ^--不同即为1,     ~取反码 -------- 的用法
    * &:有0则0
    * |:有1则1
    * ^:相同则0,不同则1
    * ~:按位取反

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

    注意:此处会有Java基础面试题,参考“java面试题”

    * <<:    左移 左边最高位丢弃,右边补齐0
    * >>:    右移 最高位是0,左边补齐0;最高为是1,左边补齐1
    * >>>:  无符号右移 无论最高位是0还是1,左边补齐0
    注:左移或右移几位就是乘以或除以2的几次幂,且此处也有一道面试题。

     4.三元运算符的基本用法

    * A:三元运算符的格式
      (关系表达式)?表达式1:表达式2;
    * B:三元运算符的执行流程
      如果条件为true,运算后的结果是表达式1;如果条件为false,运算后的结果是表达式2。
    * C:案例演示
      * 获取两个数中的最大值
        int x=10;
        int y=5;
        int temp=(x>y)?x:y;
        System.out.println(temp);

    5.键盘录入的基本格式讲解

    * A:为什么要使用键盘录入数据
      * a:为了让程序的数据更符合开发的数据
      * b:让程序更灵活一下
    * B:如何实现键盘录入呢?
      * 先照格式来。
      * 导包(位置放到class定义的上面)
        import java.util.Scanner;
      *创建对象
        Scanner sc = new Scanner(System.in);
      *接收数据
        int x = sc.nextInt();
      * a:导包
        * 格式:
          * import java.util.Scanner;
        * 位置:
          * 在class上面。
      * b:创建键盘录入对象
        * 格式:
          * Scanner sc = new Scanner(System.in);
      * c:通过对象获取数据
        * 格式:
        * int x = sc.nextInt();

    6.顺序结构语句

    * A:什么是流程控制语句
      * 流程控制语句:可以控制程序的执行流程。
    * B:流程控制语句的分类
      * 顺序结构
      * 选择结构
      * 循环结构
    * C:执行流程:
      * 从上往下,依次执行。

     8.选择结构if语句

    * A:选择结构的分类
      * if语句
      * switch语句

    * B:if语句有几种格式

      格式1:

      if(比较表达式) {
        语句体;
      }

      格式2: 

      if(比较表达式) {
        语句体1;
      }else {
        语句体2;
      }

      格式3: 

      if(比较表达式1) {
        语句体1;
      }else if(比较表达式2) {
        语句体2;
      }else if(比较表达式3) {
        语句体3;
      }
      ...
      else {
        语句体n+1;
      }

    注意:

      * a:比较表达式无论简单还是复杂,结果必须是boolean类型。
      * b:if语句控制的语句体如果是一条语句,大括号可以省略。
      * 如果是多条语句,就不能省略。建议永远不要省略。
      * c:一般来说:有左大括号就没有分号,有分号就没有左大括号。

    注意:

      格式2 if语句和三元运算符完成同一个效果。

      区别:  

        如果仅仅是赋值,它们俩没有区别,建议用三元运算符。
        如果想输出语句和其他复杂的语句,只能用if else。

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

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

      * 当if语句控制的操作是一个输出语句的时候就不能。
      * 为什么呢?因为三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。

    注意:if语句可以嵌套使用,在此不做解释。

    7.选择结构switch语句的格式及其解释

    * A:switch语句的格式
            switch语句格式:
            switch(表达式) 
            {
                case 值1:
                语句体1;
                break;
                case 值2:
                语句体2;
                break;
                …
                default:    
                语句体n+1;
                break;//最后一个break可以不写,因为执行到程序的末尾。
            }
            

    * 面试题:
            表达式的取值:byte,short,int,char
            JDK5以后可以是枚举
            JDK7以后可以是String

    * B:switch语句的格式解释
      表达式的值---case后的值---语句体;

    * C:面试题
      * byte可以作为switch的表达式吗?----可以;
      * long可以作为switch的表达式吗?----不可以;
      * String可以作为switch的表达式吗?---可以;

    * D:执行流程
        * 先计算表达式的值
        * 然后和case后面的匹配,如果有就执行对应的语句,否则执行default控制的语句。

    * E:switch 语句的俩种结束方式:break;switch 结尾处的大括号。
      注1:当switch表达式的值与其中一个case匹配的时候,这个case里没有写break;语句,那么程序会继续执行下个case里的执行语句,不会再对case值进行判断,应用于当几个case里的值所要执行的语句都一样的时候,我们可以不写break。
      注2:当我们把 default 不是写在最后,default 里面还没有写break的是时候,switch里的表达式与各个case里的值都不匹配的时候,上面两个条件同时满足的话,程序在default里执行完了还会再去执行case里的语句。

    * F:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
        default可以省略吗?
            可以省略。一般不建议。除非判断的值是固定的。(单选题)
        break可以省略吗?
            可以省略,一般不建议。否则结果可能不是你想要的
        default的位置一定要在最后吗?
            可以出现在switch语句任意位置。
        switch语句的结束条件
            遇到break
            执行到程序的末尾。

    9.选择结构switch语句的注意事项

    * a:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
        * b:default可以省略吗?
            * 可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
            * 特殊情况:
                * case就可以把值固定。
                * A,B,C,D
        * c:break可以省略吗?
            * 可以省略,但是结果可能不是我们想要的。
            * 会出现一个现象:case穿透。
            * 最终我们建议不要省略
        * d:default一定要在最后吗?
            * 不是,可以在任意位置。但是建议在最后。
        * e:switch语句的结束条件
            * a:遇到break就结束了
            * b:执行到末尾就结束了。

    10.选择结构if语句和switch语句的区别

      if语句使用场景:
              针对结果是boolean类型的判断
              针对一个范围的判断
              针对几个常量值的判断
         switch语句使用场景:
              针对几个常量值的判断。

  • 相关阅读:
    Vue路由机制
    谷歌浏览器打不开应用商店的解决方法
    Vue报错——Component template should contain exactly one root element. If you are using vif on multiple elements, use velseif to chain them instead.
    Vue.js学习之——安装
    Vue使用axios无法读取data的解决办法
    关于localstorage存储JSON对象的问题
    2013年整体计划
    个人喜欢的警语收集
    Linux防火墙的关闭和开启
    Flex修改title 转载
  • 原文地址:https://www.cnblogs.com/wanghui1316/p/5421132.html
Copyright © 2011-2022 走看看