java学习02运算符

一 算术运算符

1.运算符和表达式

运算符

就是对常量或者变量进行操作的符号

表达式

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

比如:a + b

2.算术运算符

加减乘

package com.itheima.arithmeticoperator;

public class ArithmeticoperatorDemo1 {
    public static void main(String[] args) {
        //+
        System.out.println(3+2);
        //-
        System.out.println(4-1);
        //*
        System.out.println(7*8);
    }
}

 

package com.itheima.arithmeticoperator;

public class ArithmeticoperatorDemo1 {
    public static void main(String[] args) {
        //+
        System.out.println(3+2);
        //-
        System.out.println(4-1);
        //*
        System.out.println(7*8);

        //如果计算有小数
        System.out.println(1.1+1.2);
        System.out.println(1.1-1.01);
        System.out.println(1.1*1.2);
    }
}

如果有小数参与,可能是不精确的

 

除法取模

package com.itheima.arithmeticoperator;

public class ArithmeticoperatorDemo2 {
    public static void main(String[] args) {
        //除法
        System.out.println(10/2);
        System.out.println(10/3);
        System.out.println(10.0/3);
        //取模
        System.out.println(10%2);
        System.out.println(10%3);
    }
}

1.整数相除结果只能得到整除,如果结果想要是小数,必须要有小数参数。
2.小数直接参与运算,得到的结果有可能是不精确的。 

练习 数值拆分

需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台

公式:

获取任意一个数上每一位数。

个位:数字 % 10

十位:数字 / 10 % 10

百位:数字 / 100 % 10

千位:数字 / 1000 % 10

。。。以此类推。。。

 

package com.itheima.test;

import java.util.Scanner;

public class test1 {
    public static void main(String[] args) {
        //键盘录入
        Scanner sc=new Scanner(System.in);
        System.out.println ("请输入一个三位数:");
        int number=sc.nextInt();

        //获取个位 十位 百位
        int ge = number%10;
        int shi = number/10%10;
        int bai = number/100%10;
        System.out.println(ge);
        System.out.println(shi);
        System.out.println(bai);
    }


}

 

二 隐式转换与强制转换

1.隐式转换

数字进行运算时,数据类型不一样不能运算,需要转成一样的,才能运算。

概念:

也叫自动类型提升。

就是把一个取值范围小的数据或者变量,赋值给另一个取值范围大的变量。此时不需要我们额外写代码单独实现,是程序自动帮我们完成的。

两种提升规则:

  • 取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算。

  • byte、short、char三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算。

取值范围从小到大的关系:

byte short int long float double

2.强制转换

概念:

如果要把一个取值范围大的数据或者变量赋值给另一个取值范围小的变量。是不允许直接操作。

如果一定要这么干,就需要加入强制转换。

书写格式:

目标数据类型 变量名 = (目标数据类型)被强转的数据;

简单理解:

要转成什么类型的,那么就在小括号中写什么类型就可以了。

 

package com.itheima.arithmeticoperator;

public class ArithmeticoperatorDemo3 {
    public static void main(String[] args) {
        byte b1= 100;
        byte b2= 127;
        byte result = (byte)(b1+b2);
        System.out.println(b1+b2);
        System.out.println(result);
    }
}

我们发现结果发生错误 因为要转换的数据过大

 

三 字符串的+操作

1.数字相加

2.字符串相加

  • 当+操作中出现字符串时,此时就是字符串的连接符,会将前后的数据进行拼接,并产生一个新的字符串。

  • 当连续进行+操作时,从左到右逐个执行的。

 

 

package com.itheima.test;

import java.util.Scanner;

public class test1 {
    public static void main(String[] args) {
        //键盘录入
        Scanner sc=new Scanner(System.in);
        System.out.println ("请输入一个三位数:");
        int number=sc.nextInt();

        //获取个位 十位 百位
        int ge = number%10;
        int shi = number/10%10;
        int bai = number/100%10;
        System.out.println("个位是"+ge);
        System.out.println("十位是"+shi);
        System.out.println("百位是"+bai);
    }


}

3.字符相加

规则:

当+操作中出现了字符,会拿着字符到计算机内置的ASCII码表中去查对应的数字,然后再进行计算。

例子

package com.itheima.arithmeticoperator;

public class ArithmeticoperatorDemo3 {
    public static void main(String[] args) {
        char c = 'a';
        int result = c + 0;
        System.out.println(result);
    }
}

四 自增自减运算符

 

1.使用方式:

  • 放在变量的前面,我们叫做先++。 比如:++a

  • 放在变量的后面,我们叫做后++。 比如:a++

2.注意点:

不管是先++,还是后++。单独写在一行的时候,运算结果是一模一样的。

 

package com.itheima.arithmeticoperator;

public class ArithmeticoperatorDemo4 {
    public static void main(String[] args) {
        //++  --
        int a=10;
        a++;
        System.out.println(a);
        ++a;
        System.out.println(a);
        a--;
        System.out.println(a);
        --a;
        System.out.println(a);
    }
}

 

 

package com.itheima.arithmeticoperator;

public class ArithmeticoperatorDemo5 {
    public static void main(String[] args) {
        int x=10;
        int y=x++;  //x=11,y=10
        int z=++x;  //x=12,z=12
        System.out.println("x:"+x);
        System.out.println("y:"+y);
        System.out.println("z:"+z);
    }
}

 

 

 

五 赋值运算符和关系运算符

1.赋值运算符

+=

package AssigningoperatorDemo1;

public class AssigningoperatorDemo1 {
    public static void main(String[] args) {
        int a=10;
        int b=20;
        a +=b; //a=a+b
        System.out.println(a);
        System.out.println(b);
    }
}

强制转换  

        short s=1;
        s+=1;
        System.out.println(s);

前面说short类型会转换为int类型

但是这里会有强制转换,就是会把计算出来的结果又变成short类型 主要看要赋给值的那个变量是什么类型

这等同于 s= short(s+1)

2.关系运算符

package com.itheima.compareoperator;

public class CompareoperatorDemo1 {
    public static void main(String[] args) {
        //==判断左右两边是否相等
        int a=10;
        int b=10;
        int c=20;
        System.out.println(a==b);
        System.out.println(a==c);
    }
}

 

例题

您和您的约会对象在餐厅里面正在约会。
键盘录入两个整数,表示你和你约会对象衣服的时髦度。(手动录入0~10之间的整数,不能录其他)如果你的时髦程度大于你对象的时髦程度,相亲就成功,输出true。否则输出false

package com.itheima.test;

import java.util.Scanner;

public class test2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入我们衣服的时髦度:");
        int myfashion  = sc.nextInt();
        System.out.println("请输入对象衣服的时髦度;");
        int girlfashion = sc.nextInt();

        boolean result = myfashion > girlfashion;

        System.out.println(result);
    }
}

 

 

六 逻辑运算符

1.&  与

        System.out.println(true&true);
        System.out.println(false&false);
        System.out.println(true&false);
        System.out.println(false&true);

 

2. | 或

        System.out.println(true|true);
        System.out.println(false|false);
        System.out.println(true|false);
        System.out.println(false|true);

3. ^异或

        System.out.println(true^true);
        System.out.println(false^false);
        System.out.println(true^false);
        System.out.println(false^true);

4.!取反

        System.out.println(!true);
        System.out.println(!false);

七 短路逻辑运算符

 

1.&&

        System.out.println(true&&true);
        System.out.println(false&&false);
        System.out.println(true&&false);
        System.out.println(false&&true);

2.||

        System.out.println(true||true);
        System.out.println(false||false);
        System.out.println(true||false);
        System.out.println(false||true);

 

3.短路效果

package com.itheima.logicoperator;

public class LogicoperatorDemo2 {
    public static void main(String[] args) {
        int a=10;
        int b=10;
        boolean result = ++a <5 && ++b<5;
        System.out.println(result);
        System.out.println(a);
        System.out.println(b);
    }
}

这里a先自增,变成11,然后与5做比较

得到false

此时已经能得到结果为false 因为&&的左边已经是false

所以无需比较右边,就会进行短路 b不会自增

4,例子

数字6是一个真正伟大的数字,键盘录入两个整数。

如果其中一个为6,最终结果输出true.如果它们的和为 6的倍数。

最终结果输出true。其他情况都是false,

package com.itheima.test;

import java.util.Scanner;

public class test3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数");
        int number1=sc.nextInt();
        System.out.println("请输入第二个整数");
        int number2=sc.nextInt();

        boolean result=number1==6 || number2==6 ||(number1+number2)%6==0;
        System.out.println(result);
    }
}

 

 

 

八 三元运算符

1.格式:

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

2.计算规则:

  • 计算关系表达式的值。

  • 如果关系表达式的值为真,那么执行表达式1。

  • 如果关系表达式的值为假,那么执行表达式2。

3.注意点:

三元运算符的最终结果一定要被使用,要么赋值给一个变量,要么直接打印出来。

package com.itheima.ternaryoperator;

public class TernaryoperatorDemo1 {
    public static void main(String[] args) {
        int number1=10;
        int number2=20;

        int max=number1>number2?number1:number2;
        System.out.println(max);
        System.out.println(number1>number2?number1:number2);
    }
}

 

4,例子

动物园里有两只老虎,两只老虎的体重分别为通过键盘录入获得,

请用程序实现判断两只老虎的体重是否相同。

package com.itheima.test;

import java.util.Scanner;

public class test4 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入第一只体重");
        int weight1=sc.nextInt();
        System.out.println("请输入第二只体重");
        int weight2=sc.nextInt();

        String result=weight1==weight2?"相同":"不同";
        System.out.println(result);
    }
}

 

 

一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm。

请用程序实现获取这三个和尚的最高身高。

ctrl+alt+l   自动格式化代码

package com.itheima.test;


public class test4 {
    public static void main(String[] args) {
        int height1 = 150;
        int height2 = 210;
        int height3 = 165;

        int temp = height1 > height2 ? height1 : height2;
        int max = temp > height3 ? temp : height3;
        System.out.println(max);
    }
}

九 运算符优先级

在Java中涉及了很多的运算符,每一种运算符都有各自的优先级。但是这些优先级不需要记忆。

咱们只要知道其中一点:

小括号优先于所有。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/358590.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

笔记本从零安装ubuntu系统+多种方式远程控制

文章目录 前言ubuntu启动盘Windows远程Ubuntu安装XrdpXrdp卡顿问题解决Xrdp 二次登录会死机的问题Xrdp 卡顿问题 MobaXtermRustDesk 外网远程VNC 远程SSH远程其它设置 总结 前言 我有台老笔记本&#xff0c;上大学第一年的时候买的&#xff0c;现在已经不怎么好用了。打算刷个…

GNSS定位技术总结与PPP定位技术

1.统一观测值方程 2.PPP方程构建 站间单差方程如下&#xff1a; 同样的&#xff0c;设计矩阵也更加庞大&#xff1a; 站间单差消除了卫星轨道、卫星钟、电离层、对流层以及卫星端的伪距和载波硬件延迟的影响。但在PPP中&#xff0c;我们无法通过站间单差消除这些影响&#xff…

虚拟机设置静态ip

有时候搭环境需要局域网&#xff0c;设置一下虚拟机静态ip&#xff0c;这里做个记录&#xff1a; 这里我用的是ubuntu18.04的虚拟机&#xff0c;安装完成之后&#xff0c;点击进入设置 这里设置一下桥接模式 这个时候输入ifconfig&#xff0c;就是和主机一个网段了&#xff…

Tomcat多实例配置与tomcat反向代理集群

目录 Tomcat多实例配置 1.首先配置Tomcat单实例 2.tomcat多实例配置 1.1复制单实例tomcat 1.2修改端口&#xff0c;以启动多实例。多实例之间端口不能一致 1.3对比文件不同之处 3.启动tomcat 4.检查端口查看是否启动: 5.测试浏览器访问 二、tomcat反向代理集群 1、负载…

【AI】Chinese-LLaMA-Alpaca-2 7B llama.cpp 量化方法选择及推理速度测试 x86_64 RTX 2060 6G 显存太小了

环境 操作系统 CPU 内存 生成量化版本模型 转换出q4_0 q4_k q6_k q8_0模型 cd ~/Downloads/ai/llama.cpp sourvce venv/bin/activate ~/Downloads/ai/llama.cpp/quantize /home/yeqiang/Downloads/ai/chinese-alpaca-2-7b/ggml-model-f16.gguf /home/yeqiang/Downloads/ai/ch…

elk之安装和简单配置

写在前面 本文看下elk的安装和简单配置&#xff0c;安装我们会尝试通过不同的方式来完成&#xff0c;也会介绍如何使用docker&#xff0c;docker-compose安装。 1&#xff1a;安装es 1.1&#xff1a;安装单实例 下载es安装包 在这里 下载&#xff0c;下载后解压到某个目录…

使用 Node.js 和 Cheerio 爬取网站图片

写一个关于图片爬取的小案例 爬取效果 使用插件如下&#xff1a; {"dependencies": {"axios": "^1.6.0","cheerio": "^1.0.0-rc.12","request": "^2.88.2"} }新建一个config.js配置文件 // 爬取图片…

企业内部知识库搭建原来这么轻松,靠这五步马上完成

在信息爆炸的时代&#xff0c;有效地管理企业内部的巨量信息&#xff0c;已经成为企业效率提升和竞争优势形成的关键。而一套完善的企业内部知识库&#xff0c;就是解决这个问题的第一步。那么如何建立起一个功能完备、使用便捷的知识库呢&#xff1f;只需要五步&#xff0c;你…

Leetcode—1828. 统计一个圆中点的数目【中等】

2024每日刷题&#xff08;一零五&#xff09; Leetcode—1828. 统计一个圆中点的数目 实现代码 class Solution { public:vector<int> countPoints(vector<vector<int>>& points, vector<vector<int>>& queries) {vector<int> a…

npm 被滥用 -- 有人上传了 700 多个武林外传切片视频

Sonatype 安全研究团队最近曝光了一起滥用 npm 的案例 —— 他们发现在 npm 上托管的 748 个软件包实际上是视频文件。 据介绍&#xff0c;这些软件包每个大小约为 54.5MB&#xff0c;包名以 “wlwz” 为前缀&#xff0c;并附带了代表日期的数字。根据时间戳显示&#xff0c;这…

❤搭建一个Springboot项目(ltbjava)

❤从0实现一个项目 搭建好我们的java环境和运行的IDEA软件以后&#xff0c;接下来我们就应该实现一个自己的项目了 0 项目描述 基于jdk17 的学习&#xff0c;因为据说最新的spring框架的最低要求是jdk17Maven 3.8.7PS&#xff1a;springboot3.0版本以上必须用jdk171、 项目创…

永磁同步电机位置闭环控制

文章目录 1、位置环分析与调节器2、电机参数3、模型总览4、位置给定与波形5、位置环前馈控制5.1 前馈模型5.2 位置前馈控制效果 模型下载地址&#xff1a; 链接: 位置闭环模型&#xff08;位置速度电流三闭环模型&#xff09; 1、位置环分析与调节器 2、电机参数 Vdc24; Rs0.…

ps缺少msvcp140.dll要怎么办?多种解决msvcp140.dll的方法分享

当您在尝试打开Adobe Photoshop时&#xff0c;如果遭遇一个典型的错误&#xff1a;“程序无法启动&#xff0c;因缺少MSVCP140.dll文件”&#xff0c;请放心&#xff0c;这并不少见&#xff0c;许多Photoshop用户都可能曾面临过这种情况。处理这个问题实际上是相当简单的。接下…

【LeetCode】530. 二叉搜索树的最小绝对差(简单)——代码随想录算法训练营Day21

题目链接&#xff1a;530. 二叉搜索树的最小绝对差 题目描述 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 示例 1&#xff1a; 输入&#xff1a;root [4,2,6,1,3] …

扭蛋机小程序开发,助力企业发展,实现营收

扭蛋机提起想必大家并不陌生&#xff0c;它与当下爆火的盲盒异曲同工&#xff0c;甚至是盲盒的前身。与盲盒不同的是&#xff0c;扭蛋机中的商品大多是一些以动漫为主题的小玩具、小玩偶&#xff0c;具有价格低、性价比高的优势。相比与高昂的手办&#xff0c;扭蛋机一经上市就…

webassembly003 TTS BARK.CPP

TTS task TTS&#xff08;Text-to-Speech&#xff09;任务是一种自然语言处理&#xff08;NLP&#xff09;任务&#xff0c;其中模型的目标是将输入的文本转换为声音&#xff0c;实现自动语音合成。具体来说&#xff0c;模型需要理解输入的文本并生成对应的语音输出&#xff0…

「仅需三次鼠标,即可开服」幻兽帕鲁全自动部署教程

在帕鲁的世界&#xff0c;你可以选择与神奇的生物「帕鲁」一同享受悠闲的生活&#xff0c;也可以投身于与偷猎者进行生死搏斗的冒险。帕鲁可以进行战斗、繁殖、协助你做农活&#xff0c;也可以为你在工厂工作。你也可以将它们进行售卖&#xff0c;或肢解后食用。 本文将为您提…

qt5-入门

参考&#xff1a; qt学习指南 Qt5和Qt6的区别-CSDN博客 Qt 学习之路_w3cschool Qt教程&#xff0c;Qt5编程入门教程&#xff08;非常详细&#xff09; 本地环境&#xff1a; win10专业版&#xff0c;64位 技术选择 Qt5力推QML界面编程。QML类似HTML&#xff0c;可以借助CSS进…

TypeScript(六) 循环语句

1. TypeScript循环语句 1.1. 简述 有的时候&#xff0c;我们可能需要多次执行同一块代码。一般情况下&#xff0c;语句是按顺序执行的&#xff1a;函数中的第一个语句先执行&#xff0c;接着是第二个语句&#xff0c;依此类推。   循环语句允许我们多次执行一个语句或语句组…

栈的基本知识

链表的优点&#xff1a;在任何位置插入删除O(1) 链表的缺点&#xff1a;不支持下标的随机访问&#xff0c;需要通过特定函数实现 顺序表的缺点&#xff1a;在前面部分插入数据&#xff0c;效率是O(N)&#xff0c;需要挪动数据&#xff0c;要求连续的物理空间如果空间不够要扩…