• Java运算符和逻辑控制



    活动地址:CSDN21天学习挑战赛

    运算符

    在Java里一共有六中运算符:
    算术运算符(+ - */)、关系运算符(< > ==)、逻辑运算符、位运算符、移位运算符以及条件运算符等

    算术运算符

    基本四则运算符:加减乘除模(+ - * / %)
    加减乘的使用和需要注意的地方和C语言都是差不多的,这里需要注意的只有/%
    / 除法 和 % 取模
    在二个数相同为 int 类型时进行/ 除法 运算,得出的结果如果是小数,那么会向下取整,输出整数
    例如:
    在这里插入图片描述
    做除法和取模时,右操作数不能为0
    否则编译器会报错

    在这里插入图片描述
    % 不仅可以对整形取模,也可以对double类型取模,但是没有意义,一般都是对整形取模的
    使用的常景较少

    增量运算符 += -= *= %=

    这些运算符会运算结束后把结果赋值给左操作数
    注意:

    在进行增量运算符时,使用类型大于赋值的类型时,不用进行强行转换,编译器会默认进行转换

     int a = 10;
            long b = 20;
            a += b;        默认进行类型的转换,不需要强行转换比如:  a +=int) b; 
            System.out.println(a);
    
    • 1
    • 2
    • 3
    • 4

    自增/自减运算符 ++ –

    前置++ 和 后置++ 或 前置-- 和 后置-- 都是给变量进行 +1 或 - 1 的

    需要注意的是如果 变量本身进行++ 或者 – 再赋值给变量本身时结果就和C语言的不一样了
    例如:
    这是需要注意的地方

    在这里插入图片描述

    关系运算符

    关系运算符有六个:== != < > <= >=,但是使用的方法是和C语言一样的,但是返回的结果是不一样的
    关系运算符计算结果只有二种: true 或者 false
    例如:
    在这里插入图片描述

    逻辑运算符

    逻辑运算符主要有三个分别是:

    逻辑与 &&逻辑或 ||逻辑非 !
    逻辑运算符最后的结果一定都是布尔类型(boolean)

    • 逻辑与 && :全部的条件都为真(true)时,最后的结果才是 真
      二个表达式都必须是 布尔(boolean)表达式
      如果第一个表达式为假,之后就不会执行第二个表达式

    • 逻辑或 ||:只要其中一个条件为真(true)时,最后的结果才是 真
      如果第一个表达式为真,第二个就不会执行

    • 逻辑非 ! 只有全部条件为假时(false),结果才是 假,其他情况都是真

    这里就不能用变量直接进行逻辑运算,会报错
    在这里插入图片描述

    正确的使用:
    在这里插入图片描述

    • java中的 &|如果两侧的表达式结果为 boolean 时, 也表示逻辑运算
      但是计算的是整个表达式,所以需要区别开来

    位运算符

    • & 按位于
      比如:
      在这里插入图片描述
      可以用来求一个数中二进制中 1 的个数

    • | 按位或
      比如:
      在这里插入图片描述

    可以用来求一个数中二进制中 0 的个数

    • ^ 按位异或
      比如:
      在这里插入图片描述找出对应位上不相同的个数

    位移运算符

    位运算符一·共有 三个:
    <<左移操作符
    >>右移操作符
    >>> 无符号右移

    三个位运算符都是按照 二进制位 进行操作的

    • <<左移操作符
      左移操作符相当于最左侧位的一个数不要了, 最右侧补 0
      左移 1 位, 相当于原数字 2. 左移 N 位, 相当于原数字 2 的N次方

    • >>右移操作符
      最右侧位的一个数不要了, 最左侧补符号位(正数补0, 负数补1
      右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方

    • >>> 无符号右移
      最右侧位的一个数不要了, 最左侧补 0,正负数的结果的是补 0

    逻辑控制

    逻辑控制一共有三种:
    顺序结构、分支结构、循环结构

    顺序结构

    顺序结构是从上往下,一条一条的执行,没有加判断或者循环条件的话,正常都是顺序结构
    例如:
    这是输入和输出

      public static void main(String[] args) {
    
            Scanner n = new Scanner(System.in);
            int a = n.nextInt();
            System.out.println(a);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    分支结构

    比如:一个游戏有不同的结果,每种结果都是由一个一个选择来组成的,每个选择就是分支
    分支一共有 if switch
    - if语句是用来判断条件是真还是假,通常和 else 一起使用,也可以单独使用
    if 的判断表达式都是布尔表达式

    例如:

    判断是偶数还是奇数

    public static void main(String[] args) {
            int num = 10;
            if (num % 2 == 0) {
                System.out.println("num 是偶数");
            } else {
                System.out.println("num 是奇数");
    
            }
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • switch语句
      switch 是先计算表达式的值,再和case依次比较
      一旦有响应的匹配就执行该项下的语句,直到遇到 break 时结束
      当表达式的值没有与所列项匹配时,执行default

    例如:

    public static void main(String[] args) {
            int day = 2;
            switch(day) {
                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;
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    需要注意:switch 只能使用以下的类型
    基本数据类型:byte、char、short、int

    引用类型:String常量串、枚举类型
    switch 中不能使用的类型是: long float double boolean

    循环结构

    循环结构是当循环条件为 true 时进行循环,条件为 false 就停止循环
    循环结构有 for 和 while 二种

    • while循环
      while循环是条件为 true 时,不断的执行代码,直到条件为 false 停止循环或者是遇到 breakcontinue
      例如:
      输出 5 到 0 的数字
    public static void main(String[] args) {
            int a = 5;
           while(a >= 0) {
               System.out.println(a);
               a--;
           }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • for循环
      for循环的语法:
    for(初始化表达式;布尔表达式;循环条件递增表达式)
    {
          语句块;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
      表达式2: 循环条件,满则循环继续,否则循环结束
      表达式3: 循环变量更新方式

    例如:
    循环打印 1 到 10

     public static void main(String[] args) {
            for (int i = 1; i <= 10; i++) {
                System.out.println(i);
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    Java 的输入和输出

    输出

    Java 的输入一共有三种语法:

    System.out.println("10");
    System.out.print("输出不换行");
    Systen.out.printf("%s",  "这是格式化输出");
    
    • 1
    • 2
    • 3
    • 第一种:输出完内容后并且换行
    • 第二种:输出完内容后不进行换行
    • 第三种:格式化输出

    输入

    Scanner 读取字符串/整数/浮点数
    Scanner类可以生成一个解析基本类型和字符串的文本扫描仪
    我们可以通过 Scanner 类来获取从键盘中输入的数值
    例如:

    • 输入整数 nextInt
      在这里插入图片描述
    • 输入字符串 next
      next 是读取一个字符串,中间不能出现空格
      // 输入字符串
            Scanner scanner = new Scanner(System.in);
            String name = scanner.next();
            System.out.println("姓名" + name);
    
    • 1
    • 2
    • 3
    • 4
    • 读取一行 nextLine
      nextLine 是读取的是一行的,允许出现空格
    //读取一行的字符
            Scanner scanner = new Scanner(System.in);
            String name = scanner.nextLine();
            System.out.println("姓名" + name);
    
    • 1
    • 2
    • 3
    • 4
    • 循环输入
      例如:循环输入一个整数
      结束循环是 CTRL + D
      在这里插入图片描述

    • 最后 Scanner 在Java 里认为它是一个资源,所以需要和文件一样打开后要进行关闭
      关闭 Scanner

    变量名.close();
    例如:
    scanner.close();
    
    • 1
    • 2
    • 3

    在 Java 中如何生成一个随机数

    在 Jav 生成随机数是使用 Randow
    例如:

     public static void main(String[] args) {
            Random random = new Random();
            int n = random.nextInt(100)+1;
            System.out.println(n);
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    结果:

    在这里插入图片描述

    使用随机数写一个猜数字的小游戏

    public class JavaEight {
        public static void main(String[] args) {
             //设置随机数
            Random random = new Random();
            // 从键盘获取数值
            Scanner a = new Scanner(System.in);
            // 设置生成随机数的范围
            int n = random.nextInt(100)+1;
            while(true) // true 是真,没有达成条件无限循环
            {
                System.out.println("输入要猜的数字:");
                //输入要猜的数字
                int x = a.nextInt();
                if(x < n) {
                    System.out.println("猜小了");
                }
                else if(x > n) {
                    System.out.println("猜大了");
                }
                else
                {
                    System.out.println("猜对了");
                    break;
                }
            }
            //关闭 Scanner 资源
              a.close();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    总结:

    Java的基础语法都算是比较简单,由于学过C语言,所以都是简略的描述一下,并没有详细的讲解
    内容都是大同小异

  • 相关阅读:
    洛谷P6672 你的生命已如风中残烛
    MicroExpSTCNN and MicroExpFuseNet-基于三维时空卷积神经网络的自发面部微表情识别
    选课通知 | 北交大《人工智能与大数据应用实战》第二次开课,欢迎选修~
    产品设计师根据处理哪些问题来设计外观?
    nginx基础
    力扣第501题 二叉树的众数 c++ (暴力 加 双指针优化)
    Android之启动奔溃提示异常java.lang.SecurityException: Permission Denial: startForeground
    240个Python练习案例附源码(百看不如一练)
    mac 移动硬盘推出
    推荐系统_各种方法的损失计算过程
  • 原文地址:https://blog.csdn.net/m0_66483195/article/details/126220349