运算符(代码及操作)

2023-05-16

运算符基础题

1.1 算术运算符

/*
    算术运算符:
       +: 求和
       -: 求差
       *: 求积
       /: 求商
       %: 求余数
 */

import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args) {
        //+: 求和
        int a = 10;
        int b = 20;
        int c = a + b;
        System.out.println(c);
        //键盘录入两个整数,求和
        Scanner sc = new Scanner(System.in);//Alt+回车修正代码或者叫不全代码
        System.out.println("请输入第一个整数:");
        int num1 = sc.nextInt();
        System.out.println("请输入第二个整数:");
        int num2 = sc.nextInt();
        int num3 = num1+num2;
        System.out.println("两数的和是:"+num3);

        //-: 求差
        int d = a - b;
        System.out.println(d);

        //*: 求积
        int e = a * b;
        System.out.println(e);
        System.out.println("--------------------");
        //数学中的除法 可以同时求商和求余数 10 ÷ 3 = 3 ...... 1 在java中要么求商要么求余数
        // /: 求商  整数相除叫取整
        int x = 10;
        int y = 3;
        int z = x / y;
        System.out.println(z); // 3
        // %: 求余数 除不尽都是余数
        int m = x % y;// 10%3
        System.out.println(m);// 1
        //我就想得到3.333333…怎么办? 就要使用小数相除
        double n = 10.0 / 3;  //自动类型转换 把int类型的3,转成double类型的3.0
        System.out.println(n);

        //除不尽都是余数
        int h = 3%10;
        System.out.println(h); // 3
        int j = 10%20;
        System.out.println(j); //10

        int k = 6%10;
        System.out.println(k); //6
    }
}

1.2 字符的加操作

/*
    字符的加操作:


    提示:byte short char 三种类型的数据,在参与运算的时候,首先要转成int 类型的值,然后再参与运算


    ASCII码:
        ASCII (American Standard Code for Information Interchange):
        美国信息交换标准代码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
        它是最通用的信息交换标准,并等同于国际标准 ISO/IEC 646。
        ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符

         'A' ==> int 类型的 65
         'a' ==> int 类型的 97
         '0' ==> int 类型的 48

 */
public class Demo02 {
    public static void main(String[] args) {
        char c = 'A';
        System.out.println(c + 1); //66

        // 'A' ==> int 类型的 65

        char d = 'a';
        System.out.println(d + 1); //98

        // 'a' ==> int 类型的 97

        char e = '0';
        System.out.println(e + 1); //49

        // '0' ==> int 类型的 48

        //如果有 更高的数据类型参与运算 向高类型转
        double f = 3.14;
        double s = c + f;
        System.out.println(s);

    }
}

1.3 字符串的加操作

/*
    字符串的加操作:
        拼接,遇到字符串才是拼接符
 */
public class Demo03 {
    public static void main(String[] args) {
        System.out.println("HelloWorld");
        System.out.println("Hello"+"World");
        System.out.println(1+99+"年黑马");

        System.out.println(1+2+3+4+5+"HelloWorld"+6+7+8+9);//15HelloWorld6789
        System.out.println(1+2+3+4+5+"HelloWorld"+(6+7+8+9));//15HelloWorld30
    }
}

1.4 自增自减运算符

/*
    自增自减运算符
        自增运算符:++
            对变量自增一
            自增运算符和变量单独使用的时候,无论在变量的前面还是在变量的后面都是对变量自增一
            自增运算符和其他变量参与运算时候 ++在变量的后面,先参与运算,然后再自增一
            自增运算符和其他变量参与运算时候 ++在变量的前面,先自增一,在参与运算
 */
public class Demo04 {
    public static void main(String[] args) {
        //自增运算符:++
        //自增运算符和变量单独使用的时候,无论在变量的前面还是在变量的后面都是对变量自增一
        int a = 10;
        //a++;
        ++a;
        System.out.println(a); //11
        //自增运算符和其他变量参与运算时候 ++在变量的后面,先参与运算,然后再自增一
        int b = 20;
        int c = b++;
        System.out.println(b); //21
        System.out.println(c); //20
        //自增运算符和其他变量参与运算时候 ++在变量的前面,先自增一,在参与运算
        int d = 30;
        int e = ++d;
        System.out.println(d); //31
        System.out.println(e); //31


    }
}
/*
    自减运算符:
        对变量自减一
 */
public class Demo05 {
    public static void main(String[] args) {
        int a = 10;
        //单独使用的时候,无论在变量的前面还是在变量后面,都是对变量自减一
        //--a;
        a--;
        System.out.println(a); // 9
        //参与运算的时候,--在变量的后面,先参与运算,再自减一
        int b = 20;
        int c = b--;
        System.out.println(b); // 19
        System.out.println(c); // 20
        //参与运算的时候,--在变量的前面,先自减一,在参与运算
        int d = 30;
        int e = --d;
        System.out.println(d);
        System.out.println(e);
    }
}

1.5 关系运算符

/*
    关系运算符:
        >
        >=
        <
        <=
        ==
        !=
        关系运算符的结果是布尔类型的值,是true或者false
 */
public class Demo06 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a > b);//false
        System.out.println(a < b);//true
        a = 20;
        System.out.println(a == b);//true
        System.out.println(a >= b);//true
        System.out.println(a <= b);//true
        a = 21;
        System.out.println(a >= b);//true
        System.out.println(a <= b);//false

        System.out.println(a != b);//true

    }
}

1.6 逻辑运算符

/*
    逻辑运算符:
        & :见false则false,只有两边同时为true结果才为true
        | :见true则true ,只有两边同时为false结果才为false
        ^ : 相同为false 不同为true
        ! : 取反 true变false false变true
        提示:逻辑运算符两边放的是关系表达式,因为关系表达式的值是布尔类型的,所以逻辑运算符表达式的值,也是布尔类型的
 */
public class Demo07 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int c = 30;
        // & :见false则false,只有两边同时为true结果才为true
        System.out.println(a > b & a > c); //false & false ==> false
        System.out.println(a > b & a < c); //false & true  ==> false
        System.out.println(a < b & a > c); //true  & false ==> false
        System.out.println(a < b & a < c); //true  & true  ==> true
        System.out.println("-------------------------");
        //| :见true则true ,只有两边同时为false结果才为false
        System.out.println(a > b | a > c); //false | false ==> false
        System.out.println(a > b | a < c); //false | true  ==> true
        System.out.println(a < b | a > c); //true  | false ==> true
        System.out.println(a < b | a < c); //true  | true  ==> true
        System.out.println("--------------------------");
        //^ : 相同为false 不同为true
        System.out.println(a > b ^ a > c); //false ^ false ==> false
        System.out.println(a > b ^ a < c); //false ^ true  ==> true
        System.out.println(a < b ^ a > c); //true  ^ false ==> true
        System.out.println(a < b ^ a < c); //true  ^ true  ==> false
        System.out.println("--------------------------");
        //!:取反的意思 true变false,false变true
        System.out.println(a > b);      //false
        System.out.println(!(a > b));   //true
        System.out.println(!!(a > b));  //false
        System.out.println(!!!(a > b)); //true
    }
}

1.7 短路的逻辑运算符

/*
    短路的逻辑运算符:
        &&:
            短路与,和逻辑与的运算规则是一样的,见false则false,具有短路的效果,如果左边表达式的值是false右边就表达式不运算
        ||:
            短路或,和逻辑或的运算规则是一样的,见true则true,具有短路的效果,如果左边表达式的值为true,右边表达式就不运算
 */
public class Demo08 {
    public static void main(String[] args) {
        //&:短路与,和逻辑与的运算规则是一样的,见false则false,具有短路的效果,如果左边表达式的值是false右边就表达式不运算
        int a = 10;
        int b = 20;
        /*System.out.println(a++ > 30 & b++ > 30); //false & false ==> false
        System.out.println(a); //11
        System.out.println(b); //21*/
        System.out.println(a++ > 30 && b++ > 30); //false & false ==> false
        System.out.println(a); //11
        System.out.println(b); //20
        //||:短路或,和逻辑或的运算规则是一样的,见true则true,具有短路的效果,如果左边表达式的值为true,右边表达式就不运算
        int c = 30;
        int d = 40;
        //System.out.println(c++ < 50 | d++ > 50); //true | false ==> true
        /*System.out.println(c); //31
        System.out.println(d); //41*/
        System.out.println(c++ < 50 || d++ > 50); //true | false ==> true
        System.out.println(c); //31
        System.out.println(d); //40
    }
}

1.8 赋值运算符

/*
    赋值运算符:
        =: 把右边的变量或者值,赋值给左边的变量


        +=:
            把左边的变量中的值和右边的变量或者值相加的和,重新赋值给左边的变量
        -=:
            把左边的变量中的值和右边的变量或者值相减的差,重新赋值给左边的变量
        *=:
            把左边的变量中的值和右边的变量或者值相乘的积,重新赋值给左边的变量
        /=:
            把左边的变量中的值和右边的变量或者值相除的商,重新赋值给左边的变量
        %=:
            把左边的变量中的值和右边的变量或者值相除的余数,重新赋值给左边的变量
        复合赋值运算符特点: 隐含了一个强制类型转换
 */
public class Demo09 {
    public static void main(String[] args) {
        // =: 把右边的变量或者值,赋值给左边的变量
        int a = 10;
        int b = a;
        // +=:把左边的变量中的值和右边的变量或者值相加的和,重新赋值给左边的变量
        a += 10;
        System.out.println(a); // 20

        // -=:把左边的变量中的值和右边的变量或者值相减的差,重新赋值给左边的变量
        int c = 30;
        c -= 20; //c = c-20;
        System.out.println(c);

        // *=:把左边的变量中的值和右边的变量或者值相乘的积,重新赋值给左边的变量
        int d = 40;
        d *= 5;
        System.out.println(d); //200

        // /=:把左边的变量中的值和右边的变量或者值相除的商,重新赋值给左边的变量
        int e = 50;
        e /= 5;
        System.out.println(e); //10

        //%=:把左边的变量中的值和右边的变量或者值相除的余数,重新赋值给左边的变量
        int f = 60;
        f %= 8;
        System.out.println(f); //4

        //复合赋值运算符特点: 隐含了一个强制类型转换

        short s = 10;
        s += 10;// s = (short) (s+10);
        System.out.println(s); //20
    }
}

1.9 三元运算符

/*
    三元运算符:
        格式:
            条件表达式/关系表达式 ? 表达式1 : 表达式2
        运算规则:
            1.先判断 条件表达式/关系表达式 的值
            2.如果 条件表达式/关系表达式 的值为true 选择表达式1的值作为此三元表达式最终的值
            3.如果 条件表达式/关系表达式 的值为false 选择表达式2的值作为此三元表达式最终的值
 */
public class Demo10 {
    public static void main(String[] args) {
        //定义两个变量,求最大值
        int a = 30;
        int b = 20;

        int max = a > b ? a : b;

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

    }
}

习题

2.1 求两个数的最大值

import java.util.Scanner;

/*
    键盘录入两个数字,求最大值
        分析:
            1.键盘录入
                导包
                    import java.util.Scanner
                创建对象
                    Scanner sc = new Scanner(System.in);
                接收数据
                    int num1 = sc.nextInt();
                    int num2 = sc.nextInt();
             2.求最大值
                使用三元运算符求最大值
                int max = num1>num2?num1:num2;
            3.打印最大值
                sout(max)
 */
public class Demo01 {
    public static void main(String[] args) {
        //创建对象
        Scanner sc = new Scanner(System.in);
        //接收数据
        System.out.println("请输入第一个数字:");
        int num1 = sc.nextInt();
        System.out.println("请输入第二个数字:");
        int num2 = sc.nextInt();
        //使用三元运算符求最大值
        int max = num1 > num2 ? num1 : num2;
        //打印最大值
        System.out.println("max = " + max);
    }
}

2.2 求一个数字各个位上的数字

import java.util.Scanner;

/*
    需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
        分析:
            1.键盘录入
                导包 import java.util.Scanner
                创建对象 Scanner sc = new Scanner(System.in);
                接收数据 int num = sc.nextInt();
            2.将其拆分为个位、十位、百位后
            3.打印

            123  拿到各位 123÷10 = 12 ...... 3
                 个位数字:123%10 = 3
                 十位数字:123/10%10 = 2
                 百位数字:123/100 = 1
 */
public class Demo02 {
    public static void main(String[] args) {
        //创建对象
        Scanner sc = new Scanner(System.in);
        //接收数据
        System.out.println("请输入一个三位数:");
        int num = sc.nextInt();
        //将其拆分为个位、十位、百位后
        //个位数字:123%10 = 3
        int ge = num%10;
        //十位数字:123/10%10 = 2
        int shi = num/10%10;
        //百位数字:123/100 = 1
        int bai = num/100;
        //3.打印
        System.out.println("个位上数字:"+ge);
        System.out.println("十位上数字:"+shi);
        System.out.println("百位上数字:"+bai);

    }
    /*
        1234
        个位 1234%10 = 4
        十位 1234/10%10 = 3
        百位 1234/100%10 = 2
        千位 1234/1000 = 1
        12345
        千位 12345/1000%10 = 2
        万位 12345/10000%10 = 1

        求各个位上的数字公式:
            个位 num/1%10
            十位 num/10%10
            百位 num/100%10
            千位 num/1000%10
            万位 num/10000%10
            ......


     */
}

2.3 求三个数的最大值

import java.util.Scanner;

/*
    案例:求三个整数的最大值
        需求:键盘录入三个整数,找出最大值并打印在控制台


 */
public class Demo03 {
    public static void main(String[] args) {
        //使用 Scanner 键盘录入三个整数
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个整数:");
        int num1 = sc.nextInt();
        System.out.println("请输入第二个整数:");
        int num2 = sc.nextInt();
        System.out.println("请输入第三个整数:");
        int num3 = sc.nextInt();
        //用三元运算符获取前两个整数的最大值,并用临时变量保存起来。
        int tempMax = num1 > num2 ? num1 : num2;
        //用三元运算符,让临时最大值,和第三个整数,进行比较,并记录结果
        int max = tempMax > num3 ? tempMax : num3;
        //打印结果
        System.out.println("max= "+max);
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

运算符(代码及操作) 的相关文章

  • 国产信创Linux桌面系统比较:软件包格式及软件管理、桌面环境及桌面应用

    信创产业中 xff0c 操作系统开始整合 xff0c 基本上集中在银河麒麟V10和UOS2 xff0c 很多朋友问到各种国产信创Linux系统的区别和比较 因此结合前期写的几篇文章 xff0c 对这个问题再进行了整理 以龙芯CPU为例 xf
  • Date类型转换为字符串类型

    Date date 61 new Date SimpleDateFormat fmt 61 new SimpleDateFormat 34 yyyy MM dd HH mm ss 34 String dateStr 61 fmt forma
  • 《机关单位办公自动化应用指南 (基于国产信息技术应用创新终端)》与银河麒麟V10

    机关单位办公自动化应用指南 基于国产信息技术应用创新终端 一书适合各国产Linux桌面系统 xff0c 但是举例说明基本是基于中标麒麟V7 银河麒麟V10和中标麒麟V7都采用MATE桌面 xff0c 对于普通用户桌面操作而言差别不大 xff
  • NFS故障:Stale NFS file handle的解决一例

    故障描述 xff1a 一台备份一体机设备作为NFS服务端 xff0c export了目录 infokit exportnfs xff0c 从其他设备上挂载这个NFS 目录 xff0c 在NFS服务端和客户端及其上showmount e 都一
  • CentOS7部署nextcloud最新版本

    Nextcloud 是一个免费专业的私有云存储网盘 开源 项目 xff0c Nextcloud开发人员来自owncloud Nextcloud 跨平台支持 Windows Mac Android iOS Linux 等平台 xff0c 提供
  • SQL表间操作

    MySQL表间操作 近期需要对数据进行整理 xff0c 涉及多个安全产品的数据库 xff0c 基本都是MySQL的 xff0c 经常需要进行表的合并 整理操作 MySQL常见的求交集 并集和差集 1 select a b from tabl
  • ipref网络性能评估工具

    ipref网络性能评估工具 基本介绍 网络的主要性能参数包括带宽 xff0c 时延 xff0c 抖动和丢包率 xff0c 用一个名词就是QOS xff08 服务质量 xff09 Iperf xff08 可测丢包率 xff09 可以用来测量网
  • 抓取特定DNS查询包:tcpdump vs wireshark

    近期 xff0c 在办公网络中出现网络不稳定问题 xff0c 经过分析发现是网内大量的终端安装的安全软件 xff0c 每秒钟都定期进行地址探测 xff0c 其中需要探测taobao com之类的域名地址 xff0c 造成大量的DNS查询 x
  • ceph——数据修复/均衡速度测试

    以副本环境的数据均衡为例 xff0c 以下需要注意 xff1a 1 写入数据时 xff0c 用脚本监控写入数据量 xff08 ceph df xff09 到达预定值 xff0c 开始 停止cosbench cosbench支持命令行 进入c
  • iOS 卡顿、掉帧原因+优化

    卡顿 掉帧原因 VSync垂直信号 xff0c 一般说页面流畅是60fps xff0c 也就是每一秒钟会有60帧画面更新 xff0c 相当于16 7ms就要产生一帧画面 xff0c 那么在这16 7ms之内需要由CPU和GPU共同协同完成产
  • archlinux 安装virtualbox

    一 安装前准备 首先安装 linux headers sudo pacman S linux headers 其次确认linux内核的版本 uname r 如果和header的版本不一致 xff0c 需要更新内核 否则的话会在安装virtu
  • debian 切换默认桌面命令

    update alternatives config x session manager 选择gnome session
  • 解决windows系统80端口被占用问题_

    测试这个命令会把打印机共享等依赖http服务的程序停止 xff0c 导致共享无法使用 xff0c 所以还得寻找别的办法 xff0c 后来终于搜索到一条命令 netsh http show servicestate 1 这条命令可以查看到底是
  • Linux项目自动化构建工具---make/Makefile

    make Makefile 1 背景1 1 如何编写Makefile1 1 1 依赖关系1 1 2 依赖方法1 1 3 项目清理 2 Linux第一个小程序 进度条2 1 回车和换行概念2 2 行缓冲区概念2 3 完整的进度条代码和解析 1
  • IntelliJ Rider2020+Unity+EmmyLua调试的两种方式

    Rider2018 3 1版本中是可以直接附加Unity xff0c 很不错 xff0c 就是调试有几率崩溃 一直想升级到最新版来解决调试不稳定的问题 但将Rider2018 3 1更新到Rider2020 2 1后 xff0c EmmyL
  • Edge浏览器黑色背景设置

    1 打开Edge浏览器 xff0c 点击右上角的三个点 xff0c 选择 扩展 选项 xff0c 如下图 xff1a 2 搜索Dark Reader xff0c 点击 获取 3 点击开启 4 Edge浏览器 设置 外观 主体中选择雨夜模式
  • time(0) 是什么意思?

    time 0 返回的是系统的时间 xff08 从1970 1 1午夜算起 xff09 xff0c 单位 xff1a 秒 time 参数一般为0或者Null相当于 取系统时间 include lt iostream gt include lt
  • 函数指针、表驱动用法

    函数指针 xff08 1 xff09 函数指针含义 函数 在C语言中 xff0c 函数作为功能完成的基本单位 xff0c 它的定义如下 xff1a FunctionType FuncName ArgumentList FunctionBod
  • C++的Char traits模板类

    Char traits 头文件 Char traits h Generic char traits class Note that this class is provided only as a base for explicit spe

随机推荐