运算符

算术运算符:

运算符

运算规则

范例

结果

+

正号

+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)的更多相关文章

  1. Java运算符、引用数据类型、流程控制语句

    1运算符 1.1算术运算符 运算符是用来计算数据的符号. 数据可以是常量,也可以是变量. 被运算符操作的数我们称为操作数. 算术运算符最常见的操作就是将操作数参与数学计算: 运算符 运算规则 范例 结 ...

  2. 引用数据类型 Scanner Random

    Scanner类 数据类型  变量名  =  new 数据类型(); 每种引用数据类型都有其功能,我们可以调用该类型实例的功能. 变量名.方法名(); Scanner类是引用数据类型的一种,我们可以使 ...

  3. java基础(4):引用数据类型、流程控制语句

    1. 引用数据类型 1.1 Scanner类 我们要学的Scanner类是属于引用数据类型,我们先了解下引用数据类型. 引用数据类型的使用: 与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有 ...

  4. java 方法及引用数据类型

    一.方法 在java中,方法就是用来完成解决某件事情或实现某个功能的办法. 1.语法格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,......){ 执行语句 ……… re ...

  5. Java 运算符(引用和对象)

    1. 算数运算符 就是+.-.*./.%.++.--这些,没什么好说的,稍微强调下自加,自减: 前缀自增自减法(++i,--i): 先进行自增或者自减运算,再进行表达式运算. 后缀自增自减法(i++, ...

  6. Java学习(运算符,引用数据类型)

    一.  运   算    符 1.算数运算符 运算符是用来计算数据的符号.数据可以是常量,也可以是变量.被运算符操作的数我们称为操作数. 算术运算符最常见的操作就是将操作数参与数学计算,具体使用看下图 ...

  7. 引用数据类型 Scanner和 Random

    键盘录入Scanner 获取键盘录入的数据,对获取数据的具体操作进行了封装,只需要调用方法,即可得到键盘录入的数据 A:导包            import java.util.Scanner;  ...

  8. java 中的引用数据类型

    字符串String 在java 中,字符串不是基本数据类型,而是String 类的对象,当我们创建一个字符串的时候,真的是要使用new 来调用String 构造函数 String str = new ...

  9. Java 方法的重载及引用数据类型(类)

    方法的重载 我们假设要在程序中实现一个对数字求和的方法,由于参与求和数字的个数和类型都不确定,因此要针对不同的情况去设计不同的方法. Java允许在一个类中定义多个名称相同的方法,但是参数的类型或个数 ...

随机推荐

  1. BZOJ2038[2009国家集训队]小Z的袜子(hose)——莫队

    题目描述 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜子从1到N编号 ...

  2. POJ2187-Beauty Contest-凸包

    平面最远点对 由于点数为1e5,而整数点的情况下,凸包上点的个数为sqrt(M),M为范围. 这样求出凸包之后n^2枚举维护距离就可以了 否则就用旋转卡壳. 这里用了挑战上的做法,比较简洁. #inc ...

  3. LOJ2721 [NOI2018] 屠龙勇士 【扩展中国剩余定理】

    好久没写了,写一篇凑个数. 题目分析: 这题不难想,讲一下中国剩余定理怎么扩展. 考虑$$\left\{\begin{matrix}x \equiv a\pmod{b}\\ x \equiv c\pm ...

  4. UOJ356 [JOI2017春季合宿] Port Facility 【启发式合并】【堆】【并查集】

    题目分析: 好像跑得很快,似乎我是第一个启发式合并的. 把玩具看成区间.首先很显然如果有两个玩具的进出时间有$l1<l2<r1<r2$的关系,那么这两个玩具一定在不同的栈中间. 现在 ...

  5. 洛谷P1395 会议 题解

    $题目$ 为什么这个题会有图论的标签啊,虽然图论也包括找树的重心,可是这很容易让人联想到最短路,但不得不说,这是一个典型的找树的重心模板题. 树的重心是什么? 找到一个点,其所有的子树中最大的子树节点 ...

  6. 手机Web 开发中图片img 如何等比例缩放

    如果图片本身没有设置 width.height属性的话,只需要修改 max-width:100%; 就可以了 如果图片本身设置了 width.height属性的话,需要同时修改width 和heigh ...

  7. 后台CRUD管理jqGrid 插件下载、使用、demo演示

    jqGrid:demo?version=5.2.1download src: http://www.trirand.com/blog/ github:https://github.com/tonyto ...

  8. JeeSite 部署到linux服务器

    1.打包 改数据库连接 打包war包https://www.cnblogs.com/wdw31210/p/9878422.html 2.上传到linux 服务器的tomcat/webapps/ 下 安 ...

  9. Hdoj 1785.You Are All Excellent 题解

    Problem Description 本次集训队共有30多人参加,毫无疑问,你们都是很优秀的,但是由于参赛名额有限,只能选拔部分队员参加省赛.从学校的角度,总是希望选拔出最优秀的18人组成6支队伍来 ...

  10. Leetcode 11.盛最多水的容器 By Python

    给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0).找出其中的两条线, ...