Java运算符和引用数据类型(Scanner、Random)
运算符
算术运算符:
|
运算符 |
运算规则 |
范例 |
结果 |
|
+ |
正号 |
+3 |
3 |
|
+ |
加 |
2+3 |
5 |
|
+ |
连接字符串 |
“中”+“国” |
“中国” |
|
- |
负号 |
int a=3;-a |
-3 |
|
- |
减 |
3-1 |
2 |
|
* |
乘 |
2*3 |
6 |
|
/ |
除 |
5/2 |
2 |
|
% |
取模 |
5%2 |
1 |
|
++ |
自增 |
int a=1;a++/++a |
2 |
|
-- |
自减 |
int b=3;a--/--a |
2 |
加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串。
除法“/”当两边为整数时,取整数部分,舍余数。当其中一边为浮点型时,按正常规则相除。
“%”为整除取余符号,小数取余没有意义。结果符号与被取余符号相同。
整数做被除数,0不能做除数,否则报错。
算术运算符++、--的使用
++运算符:会在原来的基础上自增1
--运算符:会在原来的基础上自减1
++、-- 运算符后置时,先使用变量原有的值参与运算,运算操作完成后,变量x的值自增1或者自减1
++、--运算符前置时,先将变量x的值自增1或者自减1,然后使用更新后的新值参与运算操作
赋值运算符
|
运算符 |
运算规则 |
范例 |
结果 |
|
= |
赋值 |
int a=2 |
2 |
|
+= |
加后赋值 |
int a=2,a+=2,(a=a+2) |
4 |
|
-= |
减后赋值 |
int a=2,a-=2 (a=a-2) |
0 |
|
*= |
乘后赋值 |
int a=2,a*=2 (a=a*2) |
4 |
|
/= |
整除后赋值 |
int a=2,a/=2 |
1 |
|
%= |
取模后赋值 |
int a=2,a%=2 |
0 |
比较运算符
比较运算符,又叫关系运算符,它是用来判断两个操作数的大小关系及是否相等关系的,结果是布尔值true或者false。
|
运算符 |
运算规则 |
范例 |
结果 |
|
== |
相等于 |
4==3 |
False |
|
!= |
不等于 |
4!=3 |
True |
|
< |
小于 |
4<3 |
False |
|
> |
大于 |
4>3 |
True |
|
<= |
小于等于 |
4<=3 |
False |
|
>= |
大于等于 |
4>=3 |
True |
赋值运算符的=符号,符号与比较运算符的==符号是有区别的
赋值运算符的=符号,是用来将=符号右边的值,赋值给左边的变量
比较运算符的==符号,是用来判断==符号 左右变量的值是否相等的
逻辑运算符
逻辑运算符,它是用于布尔值进行运算的,运算的最终结果为布尔值true或false
|
运算符 |
运算规则 |
范例 |
结果 |
|
& |
与 |
false&true |
False |
|
| |
或 |
false|true |
True |
|
^ |
异或 |
true^flase |
True |
|
! |
非 |
!true |
Flase |
|
&& |
短路与 |
false&&true |
False |
|
|| |
短路或 |
false||true |
True |
逻辑运算符通常是连接两个其他表达式计算后的布尔值结果
当使用短路与或者短路或时,只要能判断出结果则后面的部分就不在判断
运算符的结果规律:
短路与&&:参与运算的两边数据,只要有false,则运算结果为false
短路或||:参与运算的两边数据,只要有true, 则运算结果为true
逻辑非!:参与运算的两边数据,原先是true则变成false,原先是false则变成true
//&与的运行结果
System.out.println(false&true);//false
System.out.println(true&false);//false
System.out.println(true&true);//true
System.out.println(false&false);//false
//&&短路与的运行结果
System.out.println(false&&true);//false
System.out.println(true&&false);//false
System.out.println(true&&true);//true
System.out.println(false&&false);//false
//例子
int a=1;
int b=1;
System.out.println(1==2&a++ ==1);//false
System.out.println(1==2&&b++ ==1);//false
System.out.println(a);//2
System.out.println(b);//1
注意:
与&和短路与&&的区别
&如果第一个值是false,还会判断第二个值
&&如果第一个值是false,将不会判断第二个值
//|或运行结果
System.out.println(false|true);//true
System.out.println(true|false);//true
System.out.println(true|true);//true
System.out.println(false|false);//false
//||短路或运行结果
System.out.println(false||true);//true
System.out.println(true||false);//true
System.out.println(true||true);//true
System.out.println(false||false);//false
//例子
int c=1;
int d=1;
System.out.println(1==1|c++ ==1);//true
System.out.println(1==1||d++ ==1);//true
System.out.println(c);//2
System.out.println(d);//1
注意:
// 或| 和 短路或||的区别
|如果第一个值为true,还会判断第二个值
||如果第一个值为true,不会判断第二个值
三元运算符
格式:
(条件表达式)?表达式1:表达式2
三元运算符的运算规则:
先判断条件表达式的值,若为true,运算结果为表达式1;若为false,运算结果为表达式2。
例子:
//随机出入三个数,然后输出最大值
import java.util.Scanner;
class Demo05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数:");
int x=sc.nextInt();
System.out.println("请输入第二个数:");
int y=sc.nextInt();
System.out.println("请输入第三个数:");
int z=sc.nextInt();
int max = (x>y?x:y)>z?(x>y?x:y):z;
System.out.println("最大值为:"+max);
}
}
Max= (x>y?x:y)>z?(x>y?x:y):z;
先判断两边括号里面x,y的值,如果x值大然后在跟z值比大小,若y值大然后y跟z值在比较大小
运算符优先级
每种运算符的优先级,按照运算先后顺序排序(优先级相同的情况下,按照从左到右的顺序依次运算)
|
优先级 |
描述 |
运算符 |
|
1 |
括号 |
()、[] |
|
2 |
正负号 |
+、- |
|
3 |
自增自减,非 |
++、--、! |
|
4 |
乘除,取余 |
*、/、% |
|
5 |
加减 |
+、- |
|
6 |
移位运算 |
<<、>>、>>> |
|
7 |
大小关系 |
>、>=、<、<= |
|
8 |
相等关系 |
==、!= |
|
9 |
按位与 |
& |
|
10 |
按位异或 |
^ |
|
11 |
按位或 |
| |
|
12 |
逻辑与 |
&& |
|
13 |
逻辑或 |
|| |
|
14 |
条件运算 |
?: |
|
15 |
赋值运算 |
=、+=、-=、*=、/=、%= |
|
16 |
位赋值运算 |
&=、|=、<<=、>>=、>>>= |
引用数据类型
Scanner类
Scanner类
Scanner类是引用数据类型的一种,我们可以使用该类来完成用户键盘录入,获取到录入的数据。
Scanner使用步骤:
导包:import java.util.Scanner;
创建对象实例:Scanner sc = new Scanner(System.in);
调用方法:
int i = sc.nextInt(); 用来接收控制台录入的数字
String s = sc.next(); 用来接收控制台录入的字符串
例子:
import java.util.Scanner;
public class ScannerDemo01 {
public static void main(String[] args) {
//创建Scanner引用类型的变量
Scanner sc = new Scanner(System.in);
//获取数字
System.out.println("请输入一个数字");
int n = sc.nextInt();
System.out.println("n的值为" + n);
//获取字符串
System.out.println("请输入一个字符串");
String str = sc.next();
System.out.println("str的值为" + str);
}
}
![]() |
|
运行结果:
随机数类Random
这个Random类,它可以产生多种数据类型的随机数,在这里我们主要介绍生成整数与小数的方式。
public int nextInt(int maxValue) 产生[0,maxValue)范围的随机整数,包含0,不包含maxValue;
public double nextDouble() 产生[0,1)范围的随机小数,包含0.0,不包含1.0。
l Random使用方式:
n import导包:所属包java.util.Random
n 创建实例格式:Random 变量名 = new Random();
接下来,通过一段代码,一起学习下Random类的使用,RandomDemo.java
import java.util.Random;
public class RandomDemo {
public static
void main(String[] args) {
// 创建Random类的实例
Random
r = new Random();
// 得到0-100范围内的随机整数,将产生的随机整数赋值给i变量
int i = r.nextInt(100);
//得到0.0-1.0范围内的随机小数,将产生的随机小数赋值给d变量
double d = r.nextDouble();
System.out.println(i);
System.out.println(d);
}
}
运行结果如下图所示:

Java运算符和引用数据类型(Scanner、Random)的更多相关文章
- Java运算符、引用数据类型、流程控制语句
1运算符 1.1算术运算符 运算符是用来计算数据的符号. 数据可以是常量,也可以是变量. 被运算符操作的数我们称为操作数. 算术运算符最常见的操作就是将操作数参与数学计算: 运算符 运算规则 范例 结 ...
- 引用数据类型 Scanner Random
Scanner类 数据类型 变量名 = new 数据类型(); 每种引用数据类型都有其功能,我们可以调用该类型实例的功能. 变量名.方法名(); Scanner类是引用数据类型的一种,我们可以使 ...
- java基础(4):引用数据类型、流程控制语句
1. 引用数据类型 1.1 Scanner类 我们要学的Scanner类是属于引用数据类型,我们先了解下引用数据类型. 引用数据类型的使用: 与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有 ...
- java 方法及引用数据类型
一.方法 在java中,方法就是用来完成解决某件事情或实现某个功能的办法. 1.语法格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,......){ 执行语句 ……… re ...
- Java 运算符(引用和对象)
1. 算数运算符 就是+.-.*./.%.++.--这些,没什么好说的,稍微强调下自加,自减: 前缀自增自减法(++i,--i): 先进行自增或者自减运算,再进行表达式运算. 后缀自增自减法(i++, ...
- Java学习(运算符,引用数据类型)
一. 运 算 符 1.算数运算符 运算符是用来计算数据的符号.数据可以是常量,也可以是变量.被运算符操作的数我们称为操作数. 算术运算符最常见的操作就是将操作数参与数学计算,具体使用看下图 ...
- 引用数据类型 Scanner和 Random
键盘录入Scanner 获取键盘录入的数据,对获取数据的具体操作进行了封装,只需要调用方法,即可得到键盘录入的数据 A:导包 import java.util.Scanner; ...
- java 中的引用数据类型
字符串String 在java 中,字符串不是基本数据类型,而是String 类的对象,当我们创建一个字符串的时候,真的是要使用new 来调用String 构造函数 String str = new ...
- Java 方法的重载及引用数据类型(类)
方法的重载 我们假设要在程序中实现一个对数字求和的方法,由于参与求和数字的个数和类型都不确定,因此要针对不同的情况去设计不同的方法. Java允许在一个类中定义多个名称相同的方法,但是参数的类型或个数 ...
随机推荐
- codeforces496C
Removing Columns CodeForces - 496C You are given an n × m rectangular table consisting of lower case ...
- HTTP协议那些事儿(Web开发补充知识点)
HTTP协议 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式.协作式和超媒体信息系统的应用层协议.HTTP是万维网的数据通信的基础. H ...
- 第五十五天 css基础入门
一.引入css的三种方式 1.行间式 <div style="width: 100px; height: 100px; background-color: red">& ...
- HDU2710-Max Factor-分解质因子
给出N个MAXN以内的不同的数,求出素因子最大的数. 使用朴素的方法分解素因子即可.时间复杂度为N*log(MAXN) #include <cstdio> #include <alg ...
- ajax 提交Dictionary
ajax向webapi提交Dictionary Script: var data = { "a": 1, "b": 2, "c": &quo ...
- kibana get 查询失效
kibana版本:5.4 在使用kibana 查询数据时,如果我们根据数据id 来获得一条数据,写法 get 索引名称/类型名称/文档主键 如:get testindex/testtype/01 这样 ...
- 洛谷P4281 紧急集合 / 聚会
LCA 题目要求找离三个点最近的点,我们先看两个点的情况,自然是找LCA,那么三个点的时候是否与LCA有关呢? 显然,离三个点最近的点一定是在这三个点联通的简单路径上. 可以简单证明一下,假设某个点离 ...
- Awesome-VR
Google-tool Marzipano是现代网络的360°媒体查看器.—— Google官网 文档 案例 源码 WebVR-Frameworks ReactVR - Build VR ...
- SpringMVC 拦截器使用说明
spring-content.xml <!-- 配置用于session验证的拦截器 --> <!-- 如果有多个拦截器满足拦截处理的要求,则依据配置的先后顺序来执行 --> & ...
- mysql 0x80004005 unable to connect to any of the specified mysql hosts
语言:c# 问题:偶尔会出现连不上mysql 报标题的这个错误. 解决方法:把server = localhost 改为 =127.0.0.1 或者静态IP ,按着改暂时没出现了,继续观望!
