Java基础(运算符)

news2024/11/26 20:49:22

运算符

运算符和表达式

运算符:对字面量或者变量进行操作的符号

表达式:用运算符把字面量或者变量连接起来,符合java语法的式子就可以称为表达式;不同运算符连接的表达式体现的是不同类型的表达式。

算术运算符(加、减、乘、除、取模、取余)(字符串只有加)
一、案例:
Spackage cn.wwq.YunSuanFu;
​
import java.util.Scanner;
​
public class demo1 {
    /**
     *需求:键盘录入一个三位数,将其拆分为个位、十位、百位后,打印在控制台
     * 公式总结:
     * 个位:数值 % 10
     * 十位:数值 / 10 % 10
     * 百位:数值 / 100 % 10
     * 千位:数值 / 1000 % 10
     * */
    public static void main(String[] args) {
        //1.键盘录入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一位三位数");
        int number = sc.nextInt();
​
        //2.获取个位,十位,百位
        //个位:数值 % 10
        // 十位:数值 / 10 % 10
        //百位:数值 / 100 % 10
        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.数字相加

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

2.字符串相加

3.字符相加

字符+字符/字符+数字时,会把字符通过 ASCII 码表查询到对应的数字再进行计算。

三.隐式转换和强制转换

隐式转换(自动类型提升):取值范围的数值转换成取值范围的数值。

取值范围从小到大:byte<short<int<long<float<double

什么时候转换?数据类型不一样,不能进行计算,需要转成一样的才可以进行计算。

隐式转换的两种提升规则:

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

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

看代码说结果:

强制转换:取值范围的数值转换成取值范围的数值。

四.注意事项:

/ 和 % 的区别:两个数据做除法,/ 取结果的商,% 取结果的余数。整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。

自增自减运算符-基本使用

基本用法:

单独使用方式++ 和 -- 既可以放在变量前边,也可以放在变量后边,单独写一行结果是一样的

package cn.wwq.YunSuanFu;
​
public class demo2 {
    public static void main(String[] args) {
        //++ 和 --
        int a = 5;
        a++;
        System.out.println(a);//6
        ++a;
        System.out.println(a);//7
        a--;
        System.out.println(a);//6
        --a;
        System.out.println(a);//5
    }
}

参与计算方式:1. int a = 10; int b = a++; (先用后加)

2. int a = 10; int b = ++a; (先加后用)

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

注意:+=,-=,*=,/=,%=底层都隐藏了一个强制类型转换

关系运算符(比较运算符):

注意事项:关系运算符的结果都是boolean类型,要么是true,要么是false。千万不要把“==”误写成“=”。

package cn.wwq.YunSuanFu;
​
import java.util.Scanner;
​
/**
 *您和您的约会对象在餐厅约会。
 *键盘录入两个整数,表示你和你约会对象衣服的时髦度(手动录入0-10之间的整数)
 * 如果你的时髦程度大于你对象的时髦程度,就相亲成功,输出true,否则输出false。
 */
public class demo3 {
    public static void main(String[] args) {
         //1.键盘录入
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入自己衣服的时髦度:");
        int my = sc.nextInt();
        System.out.println("请输入相亲对象衣服的时髦度:");
        int girl = sc.nextInt();
​
        //比较
        boolean result = my > girl;
​
        //打印
        System.out.println(result);
    }
}
​
逻辑运算符
一、逻辑运算符的分类:

提示:取反的感叹号不要写多次,要么不写,要么只写一个。

&两个都要满足,|满足一个就可以

二、短路逻辑运算符

短路逻辑运算符具有短路效果,当左边的表达式能确定最终结果,那么右边就不会参与运行了。

注意事项:

1.&|,无论左边是true还是false,右边都要执行。

&&||,如果左边能确定整个表达式的结果,右边不执行。

%%:左边为false,右边不管是真是假,整个表达式的结果一定是false。

||:左边为true,右边不管是真是假,整个表达式的结果一定是true。

这两种情况下,右边不执行,提高了效率。

2.最常用的逻辑运算符:&&,||,!

package cn.wwq.YunSuanFu;
​
​
import java.util.Scanner;
​
/**
 * 数字6是一个真正伟大的数字,键盘录入两个整数。
 * 如果其中一个为6,最后结果输出true。
 * 如果它们的和为6的倍数,最终结果输出为true,其他情况都是false.
 * */
public class demo4 {
    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 || (number2 + number1) % 6 == 0;
​
        //打印
        System.out.println(result);
    }
}
​

三元运算符
一、三元运算符的作用:

可以进行判断,根据判断的结果得到不同的内容。

二、 三元运算符(三元表达式)格式:

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

package cn.wwq.YunSuanFu;
/**
 * 使用三元表达式,获取两个整数的较大值
 * */
public class demo5 {
    public static void main(String[] args) {
        //1.定义两个变量记录两个整数
        int number1 = 19;
        int number2 = 29;
        //2.使用三元表达式,获取两个整数的较大值
        int max = number1 > number2 ? number1 : number2;
        System.out.println(max);
​
    }
}
​
三、计算规则:

1.首先计算关系表达式的值

2.如果值为true表达式1的值就是运算结果

3.如果值为false表达式2的值就是运算结果

四、案例
package cn.wwq.YunSuanFu;
/**
 * 一座寺庙住着三个和尚,已知他们的身高分别为150cm、210cm、165cm。
 * 请用程序实现获取这三个和尚的最高身高。
 * */
public class demo6 {
    public static void main(String[] args) {
        //1、定义三个变量记录三个和尚的身高
        int height1 = 150;
        int height2 = 210;
        int height3 = 165;
        //2、拿着第一个和尚和第二个和尚比较
        //  再拿结果与第三个和尚比较
        int result = height1 > height2 ? height1 : height2;
        int result2 = result > height3 ? result : height3;
        System.out.println(result2);
    }
}
​
五、运算符优先级

()优先于所有。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

短视频素材哪个软件好?短视频素材那里来?

在当今数字化时代&#xff0c;高质量的视频素材对于提升任何视频项目的吸引力和专业度都至关重要。以下是全球范围内精选的视频素材网站&#xff0c;每个都能为你的视频创作提供独特的视觉支持和灵感。 1. 蛙学府&#xff08;中国&#xff09; 主要提供丰富的中文视频素材&…

Centos 5 的yum源

背景 有使用较老的Centos 5 系统内部安装软件无法正常报错&#xff0c;是由于系统叫老yum源存在问题 处理方法 更换下述yum源&#xff0c;可以将其他repo源文件备份移动到其他目录&#xff0c;添加下述源后重新测试 [C5.11-base] nameCentOS-5.11 baseurlhttp://vault.c…

哈希表练习题

前言 本次博客将要写一写&#xff0c;哈希表的一些使用 哈希表主要是一个映射&#xff0c;比如数组就是一个哈希表 是一个整型对应另一个整型&#xff0c;介绍的哈希表还是要以写题目为例 第一题 242. 有效的字母异位词 - 力扣&#xff08;LeetCode&#xff09; 直接来看…

vue-manage-system 更新,后台管理系统开发更简单

vue-manage-system 近期进行了一次版本升级&#xff0c;主要是支持了更多功能、升级依赖版本和优化样式&#xff0c;并且上线了官方文档网站&#xff0c;大部分功能都有文档或者使用示例&#xff0c;更加适合新手上手开发&#xff0c;只需要根据实际业务简单修改&#xff0c;就…

【讯为Linux驱动笔记1】申请一个字符设备

Linux下每个设备都需要有一个专属设备号&#xff1a;主设备号 次设备号 【申请字符设备】 主设备号&#xff1a;一类驱动&#xff1a;如&#xff1a;USB驱动 次设备号&#xff1a;这类驱动下的某个设备 如&#xff1a;键盘鼠标 设备号是32位的dev_t类型的&#xff0c;高12位主…

STL_deque_stack_queue

Deque deque容器(双端队列) ​deque是一种双向开口的分段连续线性空间&#xff08;对外号称连续&#xff0c;使用者无法感知它是分段的&#xff09;。deque支持从头尾两端进行元素的插入和删除。deque没有容量的概念&#xff0c;因为它是动态地以分段连续空间组合而成的。随时…

同态加密原理解析

目录 1.数学介绍2.使用多项式环进行加密2.1 私钥和公钥的产生2.2 加密2.3 解密 3.同态计算3.1 同态加法3.2 同态乘法 1.数学介绍 同态加密方案基于一个难以计算的问题Ring Learning with Errorsred。这些方案中的数据在加密和未加密时都用多项式表示。 这里举一个简单的多项式…

最详细的 Windows 下 PyTorch 入门深度学习环境安装与配置 GPU 版 土堆教程

最详细的 Windows 下 PyTorch 入门深度学习环境安装与配置 CPU GPU 版 | 土堆教程 Windows 下 PyTorch 入门深度学习环境安装与配置 GPU 版 教程大纲如何使用此教程快速开始版本 Windows下判断有无NVIDIA GPU安装Anaconda作用流程下载安装 Anaconda 创建虚拟环境利用conda或者…

jmeter安装和简单使用

jmeter安装和简单使用 1. 安装 jmeter是基于Java开发的测试应用&#xff0c;其运行依赖于java环境&#xff0c;所以在下载运行jmeter前&#xff0c;先确保本机已经安装jdk或者jre&#xff0c;安装jdk步骤此处不描述。 下载jmeter&#xff1a; jmeter是Apache旗下的产品&…

电阻理论基础

电流的形成是电荷运动&#xff0c;电子方向相反&#xff0c;标量 电压&#xff1a;电势有参考点&#xff0c;是一个相对量 电阻的值不取决于电压和电流的&#xff0c; Ra表示标准电阻 R表示任意温度的电阻

数据结构:时间复杂度和空间复杂度

目录 1. 如何衡量一个算法的好坏2. 算法效率3. 时间复杂度3.1 时间复杂度的概念3.2 大O的渐进表示法3.3 推导大O阶方法3.4 常见时间复杂度计算举例 3.空间复杂度 1. 如何衡量一个算法的好坏 下面求斐波那契数列的算法好还是不好&#xff0c;为什么&#xff1f;该如何衡量一个算…

新书推荐机器学习大数据平台的构建、任务实现与数据治理

在大数据与机器学习日新月异的今天&#xff0c;构建稳定、安全、可扩展的数据平台已成为企业和研究机构的迫切需求。这本书应运而生&#xff0c;提供了详尽且实用的指南&#xff0c;帮助读者在云计算环境中构建、优化和治理大数据平台。 作者以清晰明了的写作风格&#xff0c;…

实现基于UDS LIN诊断协议的本地OTA升级

一、目标 在上篇文章LIN诊断实现MCU本地OTA升级_lin ota-CSDN博客中已经基于LIN诊断协议实现了通过PC端上位机对MCU进行本地的OTA升级&#xff0c;但是没有完全按照UDS协议实现。本篇将在上篇文章的基础上进行改进&#xff0c;实现基于UDS LIN诊断协议的本地OTA升级。本篇文章对…

C语言 | Leetcode C语言题解之第52题N皇后II

题目&#xff1a; 题解&#xff1a; struct hashTable {int key;UT_hash_handle hh; };struct hashTable* find(struct hashTable** hashtable, int ikey) {struct hashTable* tmp NULL;HASH_FIND_INT(*hashtable, &ikey, tmp);return tmp; }void insert(struct hashTabl…

nvm 使用教程

在任意目录中的空白处 按住Shift键不放&#xff0c;鼠标点击右键&#xff0c;在弹出的菜单中选择 “在此处打开 Powershell 窗口(S)”。 查看远程线上的nodejs版本 nvm ls available 查看自己安装的nodejs版本 nvm ls 切换nodejs版本号 nvm use 版本号 安装 xxx版本的nodej…

浅谈游戏机制

浅谈游戏机制 前言什么是游戏机制&#xff1f;机制组成机制类别结语 前言 最近在编写游戏开发文档的时候了解到游戏机制&#xff0c;第一次接触游戏机制的概念难免有些陌生&#xff0c;但感觉又跟常见&#xff0c;在网上查阅浏览了一些资料后了解到游戏机制还不止一个。 现在将…

Linux|Awk 变量、数字表达式和赋值运算符

引言 本部分[1]将深入学习 Awk 的高级应用&#xff0c;以应对更为复杂的文本或字符串过滤任务。将介绍包括变量、数值表达式和赋值运算符在内的 Awk 功能。 这些概念与你之前可能在诸如shell、C、Python等许多编程语言中接触过的概念并没有本质上的不同&#xff0c;所以你不必过…

【RAG 论文】Chain-of-Note:为 RAG 引入 CoT 让模型生成阅读笔记来提高面对噪音文档和未知场景的鲁棒性

论文&#xff1a;Chain-of-Note: Enhancing Robustness in Retrieval-Augmented Language Models ⭐⭐⭐ Tencent AI Lab, arXiv:2311.09210 文章目录 一、论文速读二、实现的细节2.1 Note Design2.2 Data Collection2.3 Model Training 三、实验结果3.1 QA Performance3.2 对 …

Python:解析pyserial串口通讯

简介&#xff1a;串行接口简称串口&#xff0c;也称串行通信接口或串行通讯接口&#xff08;通常指COM接口&#xff09;&#xff0c;是采用串行通信方式的扩展接口。串行接口 &#xff08;Serial Interface&#xff09;是指数据一位一位地顺序传送。其特点是通信线路简单&#…

全额退款20000,what?

接单的时候有多兴奋&#xff0c;退单的时候就有多落寞。今天我对客户全额退款了&#xff0c;跟踪了10天的项目正式结束。 这是我接单以来项目单价最高的一个项目&#xff0c;本来不太想接的&#xff0c;因为业务领域不擅长&#xff0c;又想挑战一下。兜兜转转找了几个人因为各种…