03 java语言基础逻辑运算符

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

  • A:逻辑运算符有哪些

    • &,|,^,!
    • &&,||
  • B:案例演示
  • 逻辑运算符的基本用法
  • 注意事项:
    • a:逻辑运算符一般用于连接boolean类型的表达式或者值。
    • b:表达式:就是用运算符把常量或者变量连接起来的符合java语法的式子。
      • 算术表达式:a + b
      • 比较表达式:a == b(条件表达式)
  • C:结论:
  • &逻辑与:有false则false。
  • |逻辑或:有true则true。
  • ^逻辑异或:相同为false,不同为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 遇false则false

      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 遇true则true

      /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);

      }

      }

03.02_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
    

    }

    }

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

  • A:位运算符有哪些

    • &,|,^,~ ,>>,>>>,<<
  • B:案例演示
    • 位运算符的基本用法1
    • &,|,^,~ 的用法
    • &:有0则0
    • |:有1则1
    • ^:相同则0,不同则1
    • ~:按位取反,包括符号位

      案例:

      class Demo1_Operator {

      public static void main(String[] args) {

      /*

      • &,|,^,~ 的用法
      • &:有0则0
      • |:有1则1
      • ^:相同则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)

*/

03.04_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 其实x^y就是一个中间变量,利用这个中间变量实现转换

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

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

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

      }

      }

03.05_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<<3;

        */

      //左移,向左移动几位就是乘以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);

      }

      }

03.06_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);

      }

      }

03.07_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);

      }

      }

      class Test {

      public static void main(String[] args) {

      int x = 10,y = 453,z = 12;

      System.out.println((x>y)?((x>z)?x:z):((y>z)?y:z));//嵌套使用

      //如果x>y,就看z跟x的值,谁大就是谁,如果x<y则看后面的y和z谁大谁就是最大值

      }

      }

03.08_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);

      }

      }

03.09_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; //获取x和y中的最大值

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

      }

      }

03.10_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);
}

}

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

  • 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.12_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.13_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 赋值是一句,所以如果if之后没有大括号,并且后面的第一句是这个式子那么会报错

      }

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

    }

    }

    int x;

    if (3>2)//可以通过,

    x=10;

    int x;

    if (3>2)

    int x;//通不过,因为赋值语句不是语句 ,只是一个申明

  1. 下面的程序运行结果是什么:

    int i = 8;

    if (i=10)

    {

    System.out.println( i );

    }

    A:编译报错 B:8 C:10 //里面应该是bool型

  2. 下面的程序运行结果是什么:

    boolean flag = false;

    if(flag=true)

    {

    System.out.println(“我是”+flag);

    }

    A:编译报错 B:“我是true” C:“我是false”//这个赋值很特别,他最终的结果就是flag的值是true

  3. 下面的程序运行结果是什么:

    int x = 16;

    if (x >= 18) ;

    System.out.println(“您可以浏览本网站”);//①

    System.out.println(“完了”);//②

A: ① B: ①+② C: ② D:什么都不输出

03.14_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.15_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.16_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.17_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("请输入学生成绩范围在1到100之间");

    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; //可以不赋值,有else,所以最后一定会有值,但是不与else结合就会报错

        if(x>=3) { //如果最后的结果是y可以被赋值,那么不会报错,如果最后的结果是y不会被赋值,则报错

        y = 2x+1;

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

        y = 2x;

        } else {//else是对离他最近的if的否定

        y = 2*x-1;

        }

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

        }

        }

03.18_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.19_Java语言基础(选择结构switch语句的格式及其解释)(掌握)

  • A:switch语句的格式
  • switch(表达式) {
          case 值1:
            语句体1;
            break;
            case 值2:
            语句体2;
            break;
            …
            default:
            语句体n+1;
            break;
    }
    
  • B:switch语句的格式解释
  • C:面试题(基本数据类型,只要能提升为int的都可以(byte,short,char,int),引用数据类型中的枚举(JDK1.5)和String(JDK1.7))
    • byte可以作为switch的表达式吗?可以
    • long可以作为switch的表达式吗?long不能.float,double也不可以,
    • 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.20_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.21_Java语言基础(选择结构switch语句的注意事项)(掌握)

  • A:案例演示

    • a:case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
    • b:default可以省略吗?
      • 可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
      • 特殊情况:
        • case就可以把值固定。
        • A,B,C,D
    • c:break可以省略吗?
      • 最后一个可以省略,其他最好不要省略
      • 会出现一个现象:。

        case穿透 : 只要有一个case匹配,其他的case不做比较

      • 最终我们建议不要省略
    • d:default一定要在最后吗?

      default一定最后执行

      • 不是,可以在任意位置。但是建议在最后。
    • e:switch语句的结束条件
      • a:遇到break就结束了
      • b:执行到switch的右大括号就结束了

        只要有任意一个case执行,default就不会执行

03.22_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);
    

    结果是y=4,没有一个可以匹配的,所以就运行default,运行完了之后就break了,退出了

  • B:看程序写结果://6
  • int x = 2;
    int y = 3;
    switch(x){
        default:
            y++;
        case 3:
            y++;
        case 4:
            y++;
    }/*刚开始没有一个可以匹配的,所以运行default,执行完之后没有break,发生case穿透,不与后面的case值对比,一直按顺序向下执行,直接执行break之前,或者大括号之前的所有语句,*/
    System.out.println("y="+y);
    

03.23_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 穿透虽然出问题,但是可以利用它来解决一些特殊的问题

        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==5) {

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.24_day03总结

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

作业:

1:常见的算术运算符有哪些?

+运算符的作用有哪些?

除法和取余的区别?

++和–的使用规则?

2:常见的赋值运算符有哪些?

+=运算的作用是什么?

扩展的赋值运算符有什么特点?

3:short s = 1; s = s + 1;有没有问题?如果有怎么解决?

short s = 1; s += 1;有没有问题?如果有怎么解决?

4:常见的关系运算符有哪些?

关系运算符的结果有什么特点?

5:常见的逻辑运算符有哪些?

&和&&的区别是什么?

|和||的区别是什么?

6:位运算符^的特点是什么?

7:如何实现对两个整数变量的值进行互换。

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

执行流程是什么?

9:使用三元运算符完成如下练习

比较两个数是否相等

获取两个数中最大值

获取三个数中最大值

10:流程控制语句有几种?

11:if语句的格式有几种?注意事项是什么?分别在什么时候使用?

12:看程序写结果:请自己独立分析,先不要编译运行。

第一题

int x = 1,y = 1;

if(x++==2 & ++y==2)//

{

x =7;

}

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



第二题

int x = 1,y = 1;

if(x++==2 && ++y==2)

{

x =7;

}

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



第三题

int x = 1,y = 1;

if(x++==1 | ++y==1)

{

x =7;

}

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



第四题

int x = 1,y = 1;

if(x++==1 || ++y==1)

{

x =7;

}

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



第五题

boolean b = true;

if(b==false)

System.out.println("a");

else if(b)

System.out.println("b");

else if(!b)

System.out.println("c");

else

System.out.println("d");



13:编写代码实现如下内容:if语句实现

考试成绩分等级。

90~100 A等。

80-89 B等。

70-79 C等。

60-69 D等。

60以下 E等。

请根据给定成绩,输出对应的等级。

14:switch语句的格式?针对格式的解释?以及注意事项?

15:看程序,分析下面程序的结果:

int x = 2,y=3;

switch(x)

{

default:

y++;

case 3:

y++;

break;

case 4:

y++;

}

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

16:根据输入的值,判断是星期几。(分别用if语句和switch语句实现)

输入:1

输出:星期1

17:把今天讲过的其他案例再练习一遍

来自为知笔记(Wiz)

时间: 2024-10-22 23:15:05

03 java语言基础逻辑运算符的相关文章

23 Java语言基础逻辑运算符的基本用法

1 public class HelloWorld { 2 public static void main(String[] args) { 3 int a = 10; 4 int b =20; 5 int c =30; 6 7 System.out.println(a<b & b<c); //true 8 System.out.println(a>b & a<c); //false 9 System.out.println(a>b & b<c)

day03&lt;Java语言基础+&gt;

Java语言基础(逻辑运算符的基本用法) Java语言基础(逻辑运算符&&和&的区别) Java语言基础(位运算符的基本用法1) Java语言基础(位异或运算符的特点及面试题) Java语言基础(位运算符的基本用法2及面试题) Java语言基础(三元运算符的基本用法) Java语言基础(三元运算符的练习) Java语言基础(键盘录入的基本格式讲解) Java语言基础(键盘录入的练习1) Java语言基础(键盘录入的练习2) Java语言基础(顺序结构语句) Java语言基础(选择结

Java学习总结(二)----Java语言基础

1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,int, long ,float,double,char,boolean,void 用于定义数据类型值的关键字 true,false,null 用于定义流程控制的关键字 If,else,switch,case,default, while,do,for,break,continue,return 用于

[JAVA_开课吧资源]第一周 Java语言概述、Java语言基础

主题一 Java语言概述 » JDK介绍及其基本组件 Sun公司利用Java开发工具箱(Java Development Toolkit ,JDK)发布Java的各个版本.JDK由开发和测试Java程序的独立程序集组成,它们都从命令行调用. [请点击查看更多内容 转自51CTO.com] » 使用CMD开发运行Java程序 代码文件的拓展名必须为.java,并且文件名应该与类的类名完全相同.编译一个程序是指使用编译器将源代码翻译成java字节码.下面的命令用来编译源代码文件welcome.jav

第二章 java语言基础

2.1 java语言基础组成 关键字 标识符 注释 常量和变量 运算符 语句 函数 数组 2.1.1 标识符 1. 组成:由英文字母.数字._和$ 2. 规则: 不能以数字开头 不能使用关键字 3. java的命名规范 包名:所有字母都小写.xxyyy 类名:所有单词的首字母大写.XxxYy 变量名和函数名:第一个单词首字母小写,之后的每个单词首字母都大写.xxYyyZz 常量名:所有字母都大写,多个单词用下划线连接.XXX_YY 2.1.2 常量和变量 1. 常量:不能改变的数值 分类: 整数

2018.6.13 Java语言基础复习总结

Java语言基础与面向对象编程实践 第一章 初识Java 1.1机器语言 机器语言是指一台计算机全部的指令集合.机器语言室友0和1组成的二进制数,是一串串由0和1组成的指令序列,可将这些指令序列交给计算机执行. 1.2汇编语言 负责把汇编语言翻译成二进制的机器语言,这种翻译程序就是汇编程序. 1.3高级语言 1954年第一个完全脱离机器硬件的高级语言FORTRAN诞生 1.3.1C语言 是一种计算机程序设计语言,它既有高级语言的特点,又具有汇编语言的特点. 1.3.2 C++语言 是具有面向对象

java--学习java从这里开始:Java语言基础(1)《基础知识篇》--黑马程序员

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- Java语言基础(1) 从这篇日记开始说一些关于java的语言基础知识, 1  Java语言概述 java的创始人——詹姆斯·高斯林(James Gosling) 1977年获得了加拿大卡尔加里大学计算机科学学士学位,1983年获得了美国卡内基梅隆大学计算机科学博士学位,毕业后到IBM工作,设计IBM第7一代工作站NeWS系统,但不受重视.后来转至Sun公司,1990年,与Patrick,Na

非专业码农 JAVA学习笔记 2 java语言基础

java语言基础 (一)程序构成 略 (二)数据类型变量和常量 1.数据类型(与c#差不多) 布尔bool 8位 字节byte 8   -128-127 字符char 16 短整型Short 16 Int 32 Long 64 Float 32 Double 64 2.标识符-变量常量方法对象和类的名字标记 字母数字 还有两个特殊符号_ 和$ 字母下划线或者美元符号开头 3.常量 4.变量 (三)表达式 1.赋值和强制类型转换 Tostring()弱转换 类型=(类型)变量:a=(int)b;a

day04&lt;Java语言基础+&gt;

Java语言基础(循环结构概述和for语句的格式及其使用) Java语言基础(循环结构for语句的练习之获取数据) Java语言基础(循环结构for语句的练习之求和思想) Java语言基础(循环结构for语句的练习之水仙花) Java语言基础(循环结构for语句的练习之统计思想) Java语言基础(循环结构while语句的格式和基本使用) Java语言基础(循环结构while语句的练习) Java语言基础(循环结构do...while语句的格式和基本使用) Java语言基础(循环结构三种循环语句