java If_Switch

易管家 提交于 2019-12-02 21:31:42

###03.01_Java语言基础(顺序结构语句)(了解)

###02.19_Java语言基础(逻辑运算符的基本用法)(掌握)

* A:逻辑运算符有哪些

    * &,|,^,!

    * &&,||

* B:案例演示

* 逻辑运算符的基本用法

   

* 注意事项:

    * a:逻辑运算符一般用于连接boolean类型的表达式或者值。

    * b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。

        * 算术表达式:a + b

        * 比较表达式:a == b(条件表达式)

* C:结论:

* &逻辑与:有false则false。

* |逻辑或:有true则true。

* ^逻辑异或:相同为false,不同为true。

* !逻辑非:非false则true,非true则false。

    * 特点:偶数个不改变本身。

案例:

class Demo1_Operator {

    public static void main(String[] args) {

        //&,|,^,!

        //int x = 10;

        //5 < x < 15

        //x > 5 & x < 15

        //逻辑与 & 并且and falsefalse

        int a = 10;

        int b = 20;

        int c = 30;

        /*System.out.println(a < b & b < c);           //true & true = true

        System.out.println(a < b & b > c);                //true & false = false

        System.out.println(a > b & b < c);                //false & true = false

        System.out.println(a > b & b > c);                //false & false = false*/

        //逻辑或 or truetrue

        /*System.out.println(a < b | b < c);                //true | true = true

        System.out.println(a < b | b > c);                //true | false = true

        System.out.println(a > b | b < c);                //false | true = true

        System.out.println(a > b | b > c);                //false | flase = false*/

        //逻辑异或 ^ 两边相同为false,两边不同为true

        /*System.out.println(a < b ^ b < c);           //true ^true = false

        System.out.println(a < b ^ b > c);                //true ^false = true

        System.out.println(a > b ^ b < c);                //false ^ true = true

        System.out.println(a > b ^ b > c);                //false^flase = false*/

        //逻辑非!

        System.out.println(!true);

         System.out.println(!!true);

    }

}

###02.20_Java语言基础(逻辑运算符&&和&的区别)(掌握)

* A:案例演示

    * &&和&的区别?

        * a:最终结果一样。

        * b:&&具有短路效果。左边是false,右边不执行。

        *   &是无论左边是false还是true,右边都会执行

*||和|的区别?

     *a:最终结果一样

     *b:||具有短路效果.左边是true,右边不执行

     *      |是无论左边是false还是true,右边都会执行

* B:同理||和|的区别?(学生自学)

* C:开发中常用谁?

    * &&,||,!

案例:

class Demo2_Operator {

    /*

    &&&的区别

    * a:最终结果一样。

    * b:&&具有短路效果。左边是false,右边不执行。

    |||的区别

    a:最终的结果是一样

    b:||具有短路效果,左边为true,右边不执行

    */

    public static void main(String[] args) {

        /*int a = 10;

        int b = 20;

        int c = 30;

        System.out.println(a < b && b < c);                //true && true = true

        System.out.println(a < b && b > c);                //true && false = false

        System.out.println(a > b && b < c);                //false && true = false

        System.out.println(a > b && b > c);                //false && false = false*/

        int x = 3;

        int y = 4;

        //System.out.println((++x == 3) & (++y == 4)); //false & false = false

        //System.out.println("x = " + x);                    //x = 4

        //System.out.println("y = " + y);                    //y = 5

        System.out.println("---------------------------");

        System.out.println((++x == 3) && (++y == 4)); //false & false = false

        System.out.println("x = " + x);                    //x = 4

        System.out.println("y = " + y);                    //y = 4

    }

}

###02.21_Java语言基础(位运算符的基本用法1)(了解)

* A:位运算符有哪些

    * &,|,^,~ ,>>,>>>,<<

* B:案例演示

    * 位运算符的基本用法1

   

    * &,|,^,~ 的用法

    * &:有0则0

    * |:有1则1

    * ^:相同则0,不同则1

    * ~:按位取反

案例:

class Demo1_Operator {

    public static void main(String[] args) {

        /*

        * &,|,^,~ 的用法

        * &:00

        * |:11

        * ^:相同则0,不同则1

        * ~:按位取反

        */

        System.out.println(6 & 3);                 //2

        System.out.println(6 | 3);                 //7

        System.out.println(6 ^ 3);                 //5

        System.out.println(~6);                   //-7?                      

    }

}

/*

    110

&  011

-----------

   010

    110

|    011

-----------

   111

    110

^  011

-----------

   101

    00000000 00000000 00000000 00000110        6的原码反码补码都是本身

    11111111 11111111 11111111 11111001        对6取反

-   00000000 00000000 00000000 00000001

---------------------------------------

    11111111 11111111 11111111 11111000        反码

    10000000 00000000 00000000 00000111        原码(-7)

*/

###02.22_Java语言基础(位异或运算符的特点及面试题)(掌握)

* A:案例演示

    * 位异或运算符的特点

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

   

* B:面试题:

    * 请自己实现两个整数变量的交换

    * 注意:以后讲课的过程中,我没有明确指定数据的类型,默认int类型。

案例:

class Demo2_Operator {

    public static void main(String[] args) {

        /*

        * 位异或运算符的特点

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

        */

        //System.out.println(5 ^ 10 ^ 10);

        //System.out.println(5 ^ 10 ^ 5);

        /*

        * 请自己实现两个整数变量的交换(不需要定义第三方变量)

        * 注意:以后讲课的过程中,我没有明确指定数据的类型,默认int类型。

        */

        int x = 10;

        int y = 5;

        //需要第三方变量,开发推荐用这种

        /*int temp;

        temp = x;

        x = y;

        y = temp;*/

        //不需要定义第三方变量,有弊端,有可能会超出int的取值范围

        /*x = x + y;                //10 + 5 = 15

        y = x - y;                  //15 - 5 = 10

        x = x - y;                  //15 - 10 = 5*/

        //不需要第三方变量,通过^来做

        x = x ^ y;                  // 10 ^ 5

        y = x ^ y;                  // 10 ^ 5 ^ 5 y = 10

        x = x ^ y;                  // 10 ^ 5 ^ 10  x = 5

        System.out.println("x = " + x + ",y = " + y);

    }

}

###02.23_Java语言基础(位运算符的基本用法2及面试题)(了解)

* A:案例演示 >>,>>>,<<的用法:

    *  <<:左移   左边最高位丢弃,右边补齐0(正负数都适合)

    *  >>:右移   最高位是0,左边补齐0;最高为是1,左边补齐1(正数适合,负数不适合)

    *  >>>:无符号右移 无论最高位是0还是1,左边补齐0(正数适合,负数不适合,负数右移会变成正数)

    *  最有效率的算出2 * 8的结果

案例:

class Demo3_Operator {

    public static void main(String[] args) {

        /*

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

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

        *  >>>:无符号右移 无论最高位是0还是1,左边补齐0

        *  最有效率的算出2 * 8的结果

        */

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

        //System.out.println(12 << 1);        //24

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

        /*

        00000000 00000000 00000000 00001100       12的补码

     (0)0000000 00000000 00000000 000011000        24的补码

    (00)000000 00000000 00000000 0000110000        48的补码

        */

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

        //System.out.println(12 >> 1);

        //System.out.println(12 >> 2);

        /*

        00000000 00000000 00000000 00001100       12的补码

        000000000 00000000 00000000 0000110(0)    6

        0000000000 00000000 00000000 000011(00) 3

        */

        //最有效率的算出2 * 8的结果

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

    }

}

###02.24_Java语言基础(三元运算符的基本用法)(掌握)

* A:三元运算符的格式

*        (关系表达式) ? 表达式1 : 表达式2;

* B:三元运算符的执行流程

* C:案例演示

    * 获取两个数中的最大值

案例:

class Demo1_Operator {

    public static void main(String[] args) {

        //(关系表达式) ? 表达式1 : 表达式2;

        int x = 10;

        int y = 5;

        int z;

        z = (x > y) ? x : y;

        System.out.println("z = " + z);

    }

}

###02.25_Java语言基础(三元运算符的练习)(掌握)

* A:案例演示

    * 比较两个整数是否相同

* B:案例演示

    * 获取三个整数中的最大值

案例:

class Test1_Operator {

    public static void main(String[] args) {

        /*

        * A:案例演示

             * 比较两个整数是否相同

        * B:案例演示

             * 获取三个整数中的最大值

        */

        //比较两个整数是否相同

        /*int x = 10;

        int y = 10;

        //boolean b = (x == y) ? true : false;

        boolean b = (x == y);

        System.out.println("b = " +  b);*/

        //获取三个整数中的最大值

        int a = 10;

        int b = 20;

        int c = 30;

        //先比较任意两个数的值,找出这两个数中的最大值

        int temp = (a > b) ? a : b;

        //用前两个数的最大值与第三个数比较,获取最大值

        int max = (temp > c) ? temp : c;

        System.out.println("max =" + max);

    }

}

###02.26_Java语言基础(键盘录入的基本格式讲解)(掌握)

* A:为什么要使用键盘录入数据

    * a:为了让程序的数据更符合开发的数据

    * b:让程序更灵活一下

* B:如何实现键盘录入呢?

    * 先照格式来。

    * a:导包

        * 格式:

             * import java.util.Scanner;

        * 位置:

             * 在class上面。

    * b:创建键盘录入对象

        * 格式:

             * Scanner sc = new Scanner(System.in);

    * c:通过对象获取数据

        * 格式:

             * int x = sc.nextInt();

* C:案例演示

    * 键盘录入1个整数,并输出到控制台。

    * 键盘录入2个整数,并输出到控制台。

案例:

import java.util.Scanner;

class Demo2_Scanner {

    public static void main(String[] args) {

        /*Scanner sc = new Scanner(System.in);              //创建键盘录入对象

        System.out.println("请输入一个整数:");

        int x = sc.nextInt();                             //将键盘录入的数据存储在x

        System.out.println(x);*/

        //录入两个整数

        Scanner sc = new Scanner(System.in);              //创建键盘录入对象

        System.out.println("请输入第一个整数:");

        int x = sc.nextInt();                             //将键盘录入的数据存储在x

        System.out.println(x);

        System.out.println("请输入第二个整数:");

        int y = sc.nextInt();                             //将键盘录入的数据存储在y

        System.out.println(y);

    }

}

###02.27_Java语言基础(键盘录入的练习1)(掌握)

* A:案例演示

    * 键盘录入练习:键盘录入两个数据,并对这两个数据求和,输出其结果

* B:案例演示

    * 键盘录入练习:键盘录入两个数据,获取这两个数据中的最大值

案例:

import java.util.Scanner;                           //导入包中的类Scanner

class Test2_Scanner {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);  //创建键盘录入对象

       

        //键盘录入练习:键盘录入两个数据,并对这两个数据求和,输出其结果

        /*System.out.println("请输入第一个整数:");

        int x = sc.nextInt();                     //将键盘录入的数据存储在x

        System.out.println("请输入第二个整数:");

        int y = sc.nextInt();                     //将键盘录入的数据存储在y

        int sum = x + y;

        System.out.println(sum);*/

        //键盘录入练习:键盘录入两个数据,获取这两个数据中的最大值

        System.out.println("请输入第一个整数:");

        int x = sc.nextInt();                     //将键盘录入的数据存储在x

        System.out.println("请输入第二个整数:");

        int y = sc.nextInt();                     //将键盘录入的数据存储在y

        int max = (x > y) ? x : y;                //获取xy中的最大值

        System.out.println("max = " + max);

    }

}

###02.28_Java语言基础(键盘录入的练习2)(掌握)

* A:案例演示

    * 键盘录入练习:键盘录入两个数据,比较这两个数据是否相等

* B:案例演示

    * 键盘录入练习:键盘录入三个数据,获取这三个数据中的最大值

案例:

import java.util.Scanner;                             //导包

class Test3_Scanner {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);      //创建键盘录入对象

        //键盘录入练习:键盘录入两个数据,比较这两个数据是否相等

        /*System.out.println("请输入第一个整数:");

        int x = sc.nextInt();                         //将键盘录入的数据存储在x

        System.out.println("请输入第二个整数:");

        int y = sc.nextInt();                         //将键盘录入的数据存储在y

        //boolean b = (x == y)? true : false;

        boolean b = (x == y);

        System.out.println(b);*/

        //键盘录入练习:键盘录入三个数据,获取这三个数据中的最大值

        System.out.println("请输入第一个整数:");

        int x = sc.nextInt();                         //将键盘录入的数据存储在x

        System.out.println("请输入第二个整数:");

        int y = sc.nextInt();                         //将键盘录入的数据存储在y

        System.out.println("请输入第三个整数:");

        int z = sc.nextInt();                         //将键盘录入的数据存储在y

        //定义临时变量记录住比较出前两个变量中的最大值

        int temp = (x > y) ? x : y;

        //将比较后的结果与第三个变量中的值比较,比较出三个数中的最大值

        int max = (temp > z) ? temp : z;

        System.out.println(max);

    }

}

int i = 1;

    int y = 2;

    int z = 3;

    int max = (i > y)?(i > y?i:y):(i > z?i:z);

          System.out.println(max);

* A:什么是流程控制语句

     * 流程控制语句:可以控制程序的执行流程。

* B:流程控制语句的分类

     * 顺序结构

     * 选择结构

     * 循环结构

* C:执行流程:

     * 从上往下,依次执行。

* D:案例演示

     * 输出几句话看效果即可

案例:

class Demo1_Sequence {                                  //sequence 顺序

    public static void main(String[] args) {

         System.out.println("Hello World!11111");

         System.out.println("Hello World!3333");

         System.out.println("Hello World!22222");

         System.out.println("Hello World!44444");

    }

}

###03.02_Java语言基础(选择结构if语句格式1及其使用)(掌握)

* A:选择结构的分类

     * if语句

     * switch语句

* B:if语句有几种格式

     * 格式1

     * 格式2

     * 格式3

* C:if语句的格式1

*

          if(比较表达式) {

                语句体;

          }

* D:执行流程:

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

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

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

案例:

class Demo1_If {

    public static void main(String[] args) {

         int age = 17;

         if (age >= 18) {

              System.out.println("可以浏览本网站");

         }

         System.out.println("完了");

    }

}

###03.03_Java语言基础(选择结构if语句注意事项)(掌握)

* A:案例演示

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

     * b:if语句控制的语句体如果是一条语句,大括号可以省略;

       * 如果是多条语句,就不能省略。建议永远不要省略。

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

案例:

class Demo2_If {

    public static void main(String[] args) {

         int age = 17;

         if (age >= 18 && age <= 60) {

              System.out.println("可以浏览本网站");

              //int x = 10;                  是两句话,int x声明是一句,x = 10 赋值是一句

         }

         System.out.println("完了");

       

    }

}

###03.04_Java语言基础(选择结构if语句格式2及其使用)(掌握)

* A:if语句的格式2

*

          if(比较表达式) {

                语句体1;

          }else {

                语句体2;

          }

* B:执行流程:

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

     * 如果是true,就执行语句体1;

     * 如果是false,就执行语句体2;

* C:案例演示

     * a:获取两个数据中较大的值

     * b:判断一个数据是奇数还是偶数,并输出是奇数还是偶数

     * 注意事项:else后面是没有比较表达式的,只有if后面有。

案例:

class Demo3_If {

    public static void main(String[] args) {

         /*int x = 0;

         if (x == 1) {

              System.out.println("男厕所欢迎您");

         }else {

              System.out.println("女厕所欢迎您");

         }*/

       

         //a:获取两个数据中较大的值

         /*int x = 10;

         int y = 20;

         int z;

         if (x > y) {

              z = x;

         }else {

              z = y;

         }

         System.out.println(z);*/

       

         //b:判断一个数据是奇数还是偶数,并输出是奇数还是偶数

         int num = 11;

         if (num % 2 == 0) {

              System.out.println(num + "是一个偶数");

         }else {

              System.out.println(num + "是一个奇数");

         }

    }

}

###03.05_Java语言基础(if语句的格式2和三元的相互转换问题)(掌握)

* A:案例演示

     * if语句和三元运算符完成同一个效果

* B:案例演示

     * if语句和三元运算符的区别

   

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

   

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

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

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

案例:

class Demo4_If {

    public static void main(String[] args) {

         int x = 10;

         int y = 20;

         int z;

         if (x > y) {

              //z = x;

              System.out.println(x + "是最大值");

         }else {

              //z = y;

              System.out.println(y + "是最大值");

         }

         //System.out.println(z);

         int a = 20;

         int b = 30;

         int c = (a > b)? a : b;

    }

}

###03.06_Java语言基础(选择结构if语句格式3及其使用)(掌握)

* A:if语句的格式3:

*

          if(比较表达式1) {

                语句体1;

          }else if(比较表达式2) {

                语句体2;

          }else if(比较表达式3) {

                语句体3;

          }

          ...

          else {

                语句体n+1;

          }

* B:执行流程:

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

     * 如果是true,就执行语句体1,if语句结束。

     * 如果是false,接着计算比较表达式2看其返回值是true还是false,

   

     * 如果是true,就执行语句体2,if语句结束。

     * 如果是false,接着计算比较表达式3看其返回值是true还是false,

   

     * 如果都是false,就执行语句体n+1。

* C:注意事项:最后一个else可以省略,但是建议不要省略,可以对范围外的错误值提示

案例:

class Demo5_If {

    public static void main(String[] args) {

         int x = 2;

         if (x == 1) {

              System.out.println("男厕所欢迎您");

         }else if (x == 0) {

              System.out.println("女厕所欢迎您");

         }else {

              System.out.println("无法识别您的性别");

         }

    }

}

###03.07_Java语言基础(选择结构if语句格式3练习)(掌握)

* A:练习1

*

          需求:键盘录入一个成绩,判断并输出成绩的等级。

          90-100

          80-89  

          70-79  

          60-69  

          0-59  

案例:

class Test1_If {

    public static void main(String[] args) {    

         Scanner sc = new Scanner(System.in);

         //需求:键盘录入一个成绩,判断并输出成绩的等级。

         System.out.println("请输入学生成绩范围在1100之间");

         int x = sc.nextInt();

         if (x >= 90 && x <= 100) {

              System.out.println("");

         }else if (x >= 80 && x <= 89 ) {

              System.out.println("");

         }else if (x >= 70 && x <= 79 ) {

              System.out.println("");

         }else if (x >= 60 && x <= 69 ) {

              System.out.println("");

         }else if (x >= 0 && x <= 59 ) {

              System.out.println("");

         }else {

              System.out.println("成绩录入错误");

         }

      //下面这两种写法在同学掌握了上面的写法的基础上可以扩展一下

      /*

       if (x>100 || x<0) {

              System.out.println("成绩不在0-100之间");

         } else if (x>=90) {

              System.out.println("");

         } else if (x>=80) {

              System.out.println("");

         } else if (x>=70) {

              System.out.println("");

         } else if (x>=60) {

              System.out.println("");

         } else {

              System.out.println("");

         }

       */

       /*

       if (x>100 || x<0) {

              System.out.println("成绩不在0-100之间");

         } else if (x<60) {

              System.out.println("");

         } else if (x<70) {

              System.out.println("");

         } else if (x<80) {

              System.out.println("");

         } else if (x<90) {

              System.out.println("");

         } else  {

              System.out.println("");

         }

      */

    }

}  

   

* B:练习2

     * 需求:

          * 键盘录入x的值,计算出y的并输出。

         

           * x>=3 y = 2 * x + 1;

          * -1<x<3   y = 2 * x;

          * x<=-1     y = 2 * x - 1;

案例:

import java.util.Scanner;

class Demo_if {

    public static void main(String[] args) {

         Scanner sc = new Scanner(System.in);        

         System.out.println("请输入一个整数:");

         int x = sc.nextInt();

         int y;

         if(x>=3) {

              y = 2*x+1;

         } else if (x>-1 && x<3) {// 可以直接写成else if(x>-1) {

              y = 2*x;

         } else {

              y = 2*x-1;

         }

         System.out.println("y的值为:"+y);

    }

}

###03.08_Java语言基础(选择结构if语句的嵌套使用)(掌握)

* A:案例演示

     * 需求:获取三个数据中的最大值

     * if语句的嵌套使用。

案例:

class Demo6_IfIf {

    public static void main(String[] args) {

         int a = 40;

         int b = 50;

         int c = 30;

       

         if (a > b) {

              if (a > c) {

                   System.out.println(a + "是最大值");

              }else {

                   System.out.println(c + "是最大值");

              }

         }else {   //b >= a

              if (b > c) {

                   System.out.println(b + "是最大值");

              }else {

                   System.out.println(c + "是最大值");

              }

         }

    }

}

###03.09_Java语言基础(选择结构switch语句的格式及其解释)(掌握)

* A:switch语句的格式

*

          switch(表达式) {

                case 值1:

                     语句体1;

                     break;

                    case 值2:

                     语句体2;

                     break;

                   

                    default:  

                     语句体n+1;

                     break;

         }

* B:switch语句的格式解释

* C:面试题(基本数据类型,只要能提升为int的都可以,引用数据类型中的枚举(JDK1.5)和String(JDK1.7))

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

     * long可以作为switch的表达式吗?

     * String可以作为switch的表达式吗?

* C:执行流程

     * 先计算表达式的值

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

案例:

class Demo1_Switch {

    public static void main(String[] args) {

         String name = "rose";

         String gender = "";

         switch (gender) {

         case "男士":

              System.out.println(name + "是一位" + gender + "喜欢吃饭睡觉打dota");

         break;

         case "女士":

              System.out.println(name + "是一位" + gender + "喜欢逛街购物美容");

         break;

         default:

              System.out.println(name + "是一位" + gender + "打雌性激素维持美貌容颜");

         break;

         }

    }

}

###03.10_Java语言基础(选择结构switch语句的练习)(掌握)

* A:整数(给定一个值,输出对应星期几)

案例:

class Test1_Switch {

    public static void main(String[] args) {

         //* A:整数(给定一个值,输出对应星期几)

         int week = 1;

         switch (week) {

         case 1:

              System.out.println("星期一");

         break;

         case 2:

              System.out.println("星期二");

         break;

         case 3:

              System.out.println("星期三");

         break;

         case 4:

              System.out.println("星期四");

         break;

         case 5:

              System.out.println("星期五");

         break;

         case 6:

              System.out.println("星期六");

         break;

         case 7:

              System.out.println("星期日");

         break;

         default:

              System.out.println("对不起没有对应的星期");

         break;

         }

    }

}

###03.11_Java语言基础(选择结构switch语句的注意事项)(掌握)

* A:案例演示

     * a:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的

     * b:default可以省略吗?

          * 可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。

          * 特殊情况:

                * case就可以把值固定。

                * A,B,C,D

     * c:break可以省略吗?

          * 最后一个可以省略,其他最好不要省略

          * 会出现一个现象:case穿透。

          * 最终我们建议不要省略

     * d:default一定要在最后吗?

          * 不是,可以在任意位置。但是建议在最后。

     * e:switch语句的结束条件

          * a:遇到break就结束了

          * b:执行到switch的右大括号就结束了

###03.12_Java语言基础(选择结构switch语句练习)(掌握)

* A:看程序写结果://4

*

          int x = 2;

          int y = 3;

          switch(x){

                default:

                     y++;

                      break;

                case 3:

                     y++;

                case 4:

                     y++;

          }

          System.out.println("y="+y);

   

* B:看程序写结果://6

*

          int x = 2;

          int y = 3;

          switch(x){

                default:

                     y++;

                case 3:

                     y++;

                case 4:

                     y++;

          }

          System.out.println("y="+y);

###03.13_Java语言基础(选择结构if语句和switch语句的区别)(掌握)(用switch能做的,用if都能做,单反过来则不行,比如成绩评优)

* A:总结switch语句和if语句的各自使用场景

*    switch建议判断固定值的时候用

*    if建议判断区间或范围的时候用

* B:案例演示

     * 分别用switch语句和if语句实现下列需求:

          * 键盘录入月份,输出对应的季节

案例:

import java.util.Scanner;

class Test3_SwitchIf {

    public static void main(String[] args) {

         /*

         * 键盘录入月份,输出对应的季节

         一年有四季

         3,4,5春季

         6,7,8夏季

         9,10,11秋季

         12,1,2冬季

         */

         Scanner sc = new Scanner(System.in);     //创建键盘录入对象

         System.out.println("请输入月份");

         int month = sc.nextInt();                //将键盘录入的结果存储在month

         /*switch (month) {

         case 3:

         case 4:

         case 5:

              System.out.println(month + "月是春季");

         break;

         case 6:

         case 7:

         case 8:

              System.out.println(month + "月是夏季");

         break;

         case 9:

         case 10:

         case 11:

              System.out.println(month + "月是秋季");

         break;

         case 12:

         case 1:

         case 2:

              System.out.println(month + "月是冬季");

         break;

         default:

              System.out.println("对不起没有对应的季节");

         break;

         }*/

         //if语句来完成月份对应季节方法一:

         if (month > 12 || month < 1) {

              System.out.println("对不起没有对应的季节");

         }else if (month >= 3 && month <= 5) {

              System.out.println(month + "月是春季");

         }else if (month >= 6 && month <= 8) {

              System.out.println(month + "月是夏季");

         }else if (month >= 9 && month <= 11) {

              System.out.println(month + "月是秋季");

         }else {

              System.out.println(month + "月是冬季");

         }

   

//if语句来完成月份对应季节的方法二:

/*

       if(month>12 || month<1) {

              System.out.println("输入的数字不正确");

         } else if (month==3 || month==4 || month==4) {

              System.out.println("春季");

         } else if (month==6 || month==7 || month==8) {

              System.out.println("夏季");

         } else if (month==9 || month==10|| month==11) {

              System.out.println("秋季");

         } else {

              System.out.println("冬季");

         }    */

    }

}

###03.27_day03总结

把今天的知识点总结一遍。

。。。。。。。。。。。。。。。。

03.01_Java语言基础(逻辑运算符的基本用法).avi

这个很简单,我们重点看结论:

--------------------------------------------------------------

&逻辑与:有false则false。
|逻辑或:有true则true。
^逻辑异或:相同为false,不同为true。
!逻辑非:非false则true,非true则false。

03.02_Java语言基础(逻辑运算符&&和&的区别).avi

 

 1 &&与&的区别是什么?

 2 ||与|的区别是什么?

------------------------------------------------------

1 &&与&的区别:

  a:最终结果一样。

  b:&&具有短路效果。左边是false,右边不执行。

2 ||与|的区别:

  a:最终的结果是一样

  b:||具有短路效果,左边为true,右边不执行

03.03_Java语言基础(位运算符的基本用法1).avi

 

&,|,^,~ 的用法 :

&:有0则0

  |:有1则1

^:相同则0,不同则1

~:按位取反

03.04_Java语言基础(位异或运算符的特点及面试题).avi

1.实现两个整数变量的交换,不定义第三方变量。

----------------------------------------------------

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

x = x ^ y;  y = x ^ y;x = x ^ y;

03.05_Java语言基础(位运算符的基本用法2及面试题).avi

左移,向左移动N位就是乘以2的N次幂.   3<<2   3*2^N

右移,向右移动N位就是除以2的N次幂.   3>>2   3/2^N

面试题:最有效率的算出3 * 8的结果

3*8=3*2^3=3<<3

03.06_Java语言基础(三元运算符的基本用法).avi

三元运算符的格式是什么?

   (关系表达式) ? 表达式1 : 表达式2;

注意:

【三元运算符一定是一个赋值语句 z = (x > y) ? x : y;

03.07_Java语言基础(三元运算符的练习).avi

【看代码】

03.08_Java语言基础(键盘录入的基本格式讲解).avi

1.Scanner的使用步骤是什么?

--------------------------------------------------

1.导包 import java.util.Scanner;

2.创建Scanner对象 Scanner sc = new Scanner(System.in);

3.调用Scanner对象的nextInt()方法 int x = sc.nextInt();

03.09_Java语言基础(键盘录入的练习1).avi

【看代码】

03.10_Java语言基础(键盘录入的练习2).avi

【看代码】

03.11_Java语言基础(顺序结构语句).avi

流程控制语句分为哪几类?

--------------------------------------

流程控制语句的分类:

     顺序结构  从上往下,依次执行。
     选择结构
     循环结构

03.12_Java语言基础(选择结构if语句格式1及其使用).avi

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

 

 [注:所有语句,一定要写在方法里面]

03.13_Java语言基础(选择结构if语句注意事项).avi

注意事项:

      a:比较表达式无论简单还是复杂,结果必须是boolean类型
      b:if语句控制的语句体如果是一条语句,大括号可以省略;

            如果是多条语句,就不能省略。建议永远不要省略。
      c:一般来说:有左大括号就没有分号,有分号就没有左大括号

03.14_Java语言基础(选择结构if语句格式2及其使用).avi

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

【else后面没有比较表达式】


03.15_Java语言基础(if语句的格式2和三元的相互转换问题).avi

1.if语句和三元运算符的区别?

------------------------------------------------

1.三元运算符可以做的,if语句都可以做。反之就不行。因为三元运算符最后必须有1个值进行赋值操作。你不能把一个语句赋值。

03.16_Java语言基础(选择结构if语句格式3及其使用).avi

   

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

03.17_Java语言基础(选择结构if语句格式3练习).avi

【看代码】【注练习2:局部变量在使用之前必须赋值 】

03.18_Java语言基础(选择结构if语句的嵌套使用).avi

【看代码】【注:嵌套语言一定要有缩进】


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!