运算符
表达式
表达式由运算符和操作数组成
例如: sum = a + b
运算符
算术运算符
- 算术运算符主要用于基本的算术运算,如加、减、乘、除、取余、取整等。
| 算术运算符 | 名称 | 举例 |
|---|---|---|
| + | 加 | a + b |
| - | 减 | a - b |
| * | 乘 | a * b |
| / | 除 | a / b |
| % | 取余 | a % b |
| ++ | 自增 | a++ |
| -- | 自减 | a-- |
- 自增自减运算符
| 表达式 | 执行方式 | 结果(num1=1) |
|---|---|---|
| num2=++num1; | num1=num1+1; num2=num1; | num1=2; num2=2; |
| num2=num1++; | num2=num1; num1=num1+1; | num1=2; num2=1; |
| num2=--num1; | num1=num1-1; num2=num1; | num1=0; num2=0; |
| num2=num1--; | num2=num1; num1=num1-1; | num1=0; num2=1; |
赋值运算符
- 赋值运算符主要用于将一个值赋给一个变量。
- 赋值运算符是从右到左的运算符。
复合赋值运算符
| 运算符 | 表达式 | 计算 | 结果(假设 x=15) |
|---|---|---|---|
| += | x+=5 | x=x+5 | 20 |
| -= | x-=5 | x=x-5 | 10 |
| *= | x*=5 | x=x*5 | 75 |
| /= | x/=5 | x=x/5 | 3 |
| %= | x%=5 | x=x%5 | 0 |
关系运算符
关系运算符主要用于比较两个值,并返回一个布尔值,如:等于、不等于、大于、小于、大于等于、小于等于。
| 运算符 | 名称 | 表达式 | 结果 |
|---|---|---|---|
| > | 大于 | 5>3 | true |
| < | 小于 | 5<3 | false |
| >= | 大于等于 | 5>=3 | true |
| <= | 小于等于 | 5<=3 | false |
| == | 等于 | 5==3 | false |
| != | 不等于 | 5!=3 | true |
逻辑运算符
逻辑运算符主要用于判断两个条件是否同时成立或至少成立一个的条件。
| 运算符 | 名称 | 表达式 | 结果 |
|---|---|---|---|
| &&或& | 逻辑与 | 5>3 && 5<10 | true |
| ||或| | 逻辑或 | 5<3 || 5<10 | true |
| ! | 逻辑非 | !(5>3) | false |
逻辑与
逻辑与运算符 & 和 && 的区别:
- &运算符
java
int n= 3;
boolean b = (n > 7)&((n++) < 2);
b= false,n= 4;- &&运算符
&&运算符又叫短路运算符,如果左边表达式的值为 false,则右边表达式的值不会被计算,所以&&运算符可以减少运算次数。
java
int n= 3;
boolean b = (n > 7)&&((n++) < 2);
b= false,n= 3;逻辑或
逻辑或运算符 | 和 || 的区别:
- |运算符
java
int n= 3;
boolean b = (n < 7)|((n++) < 2);
b= true,n= 4;- ||运算符
||运算符又叫短路运算符,如果左边表达式的值为 true,则右边表达式的值不会被计算,所以||运算符可以减少运算次数。
java
int n= 3;
boolean b = (n < 7)||((n++) < 2);
b= true,n= 3;条件运算符
- 条件运算符主要用于判断一个条件是否成立,并返回一个值。
- 条件运算符的格式为:condition ? value1 : value2;
- condition 为条件表达式,value1 和 value2 为两个值。
- 如果 condition 为 true,则返回 value1,否则返回 value2。
Scanner
Scanner 单词:扫描
Scanner 是 JDK 提供的一个类 位于 java.util 包下 用来接收用户在控制台输入的信息
此类中提供了用于接收各种类型数据的方法
next() 接收用户输入的字符串nextByte() 接收用户输入的 byte 类型的数据
nextShort() 接收用户输入的 short 类型的数据
nextInt() 接收用户输入的int类型的数据nextLong() 接收 long 类型的数据
nextFloat() 接收 float 类型的数据
nextDouble() 接收double类型的数据
nextBoolean() 接收布尔类型的数据注意:没有 nextChar()
因为 Scanner 类是位于 java.util 包中类 是 JDK 提供的 所以我们如需使用 必须导包
需求:使用 Scanner 类 接收用户输入的各种信息
如果输入类型不匹配的数据 将会出现 :InputMismatchException 输入不匹配异常
异常会中断我们的程序
java
import java.util.Scanner;
/**
* 需求:使用Scanner类 接收用户输入的各种信息
* 如果输入类型不匹配的数据 将会出现 :InputMismatchException 输入不匹配异常
* 异常会中断我们的程序
*/
public class TestScanner {
public static void main(String[] args) {
// 创建Scanner类型的变量 取名为input
Scanner input = new Scanner(System.in);
// 提示用户输入数据
System.out.println("请输入您的名字");
// 表示接收用户输入的数据 并且赋值给name变量
// 当程序执行到这一步 会停下来等待用户输入
// 用户输入完毕 按下回车 程序再继续执行
String name = input.next();
// 将用户输入的信息打印
System.out.println("您输入的名字是:" + name);
System.out.println("请输入您的年龄");
int age = input.nextInt();
System.out.println("您输入的年龄为:" + age);
System.out.println("请输入您的身高");
double height = input.nextDouble();
System.out.println("您输入的身高为:" + height);
System.out.println("请输入您今天是否开心?");
boolean isHappy = input.nextBoolean();
System.out.println(isHappy == true ? "恭喜你很开心" : "没有什么大不了的");
System.out.println(isHappy ? "恭喜你很开心" : "没有什么大不了的");
}
}