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)

时间: 11-02

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)

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. 常量:不能改变的数值 分类: 整数

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

02 java语言基础

常量:字面值常量(字符串,字符,整数,小数,布尔,null),自定义常量,''这个不是字符常量,""这个是字符串常量 进制: 02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 字符串常量 用双引号括起来的内容 整数常量 所有整数 小数常量 所有小数 字符常量 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号 布尔常量 较为特

Java语言基础

目录 一.Java程序预览 1.1.Hello World 1.2.Eclipse使用 1.2.1.项目位置 1.2.2.重置窗口布局 1.2.3.设置字体 1.2.4.修改控制台字体 1.2.4.项目的导入与保存 1.2.5.修改快捷键 1.2.6.重命名 1.2.7.编码 1.2.8.设置JDK本地JavaDOC API路径及源码路径 1.3.快捷键 1.3.1.Eclipse快捷键大全 1.4.调试(debug) 1.4.1.设置断点 1.4.2.启动调试 1.4.3.执行调试 二.类型

5th Java语言基础(数组)

05.01_Java语言基础(数组概述和定义格式说明)(了解) A:为什么要有数组(容器) 为了存储同种数据类型的多个值 B:数组概念 数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. 数组既可以存储基本数据类型,也可以存储引用数据类型. C:数组定义格式 数据类型[] 数组名 = new 数据类型[数组的长度]; 05.02_Java语言基础(数组的初始化动态初始化)(掌握) A:什么是数组的初始化 就是为数组开辟连续的内存空间,并为每个数组元素赋予值 B:如何对数组进行初始化