单目运算符: +(取正)、-(取负)、++(自加)、–(自减)
操作符 | 描述 |
---|---|
+ | 加法运算,当+左右两边如果一旦有字符串的出现,就作为字符串的连接符使用 |
- | 减法运算 |
++ | 自增: 操作数的值增加1;++在前,先自加,再与表达式运算;++在后,先与表达式运算,再自加; |
– | 自减: 操作数的值减少1;–在前,先自减,再与表达式运算;–后,先与表达式运算,再自减; |
基本赋值运算符
= Java中唯一一个自右向左运算的符号;
扩展的赋值运算符
+= 、-= 、*= 、/= 、%=(算术运算符+基本赋值运算符)
推荐使用:
提高执行效率
自动做强制类型转换
缺点:不直观
关系运算符
==、!=、>、>=、<、<=
操作符 描述 == 检查如果两个操作数的值是否相等,如果相等则条件为真 != 检查如果两个操作数的值是否相等,如果值不相等则条件为真 > 检查左操作数的值是否大于右操作数的值,如果是那么条件为真 >= 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真 < 检查左操作数的值是否小于右操作数的值,如果是那么条件为真 <= 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真
逻辑运算符
&、|、^、!、&&、||
操作符 | 描述 |
---|---|
& | 逻辑与,两个都为true才是true,一个为false就是false |
| | 逻辑或,一个为true就是true,两个都是false才是false |
^ | 异或,相同为false,不同为true |
! | 非,取反 !true–>false !false–>true |
&& | 短路与,两个都为true才是true,一个为false就是false |
|| | 短路或,一个为true就是true,两个都是false才是false |
推荐使用
短路**&&、||**:第一个操作数就已经能够决定最终的结果了,第二个操作数将不再执行
条件运算符也被称为三元运算符
条件表达式 ? 值1 : 值2;
1)执行条件表达式–>值为Boolean类型的表达式
2)如果为true,最终的结果取值1
3)如果为false,最终的结果取值2
类别 操作符 关联性 后缀 () [] . (点操作符) 左到右 一元 + + - !〜 从右到左 乘性 * /% 左到右 加性 + - 左到右 移位 >> >>> << 左到右 关系 >> = << = 左到右 相等 == != 左到右 按位与 & 左到右 按位异或 ^ 左到右 按位或 | 左到右 逻辑与 && 左到右 逻辑或 | | 左到右 条件 ?: 从右到左 赋值 = + = - = * = / =%= >> = << =&= ^ = | = 从右到左 逗号 , 左到右
java.util.Scanner是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。
引用数据类型
1.创建某个类型的变量|引用
引用数据类型 变量名 = new 引用数据类型();
Scanner scan=new Scanner(); ---scan就是scanner类型的变量
2.使用功能
变量.功能名字();
Scanner类:可以接收键盘输入的内容
1.导包:指明Scanner类的位置
import +包名+类名; import java.util.Scanner;
位置:类的上面
2.创建某个类型的变量|引用
Scanner scan=new Scanner();
3.引用.功能名字();
next() 接收字符串 结束功能:enter,不会接收enter
从有效字符开始接收,遇到空格,tab不接受了,但是必须遇到enter结束功能
nextLine() 只要没有换行,都能接收 遇到enter结束功能,接收enter
nextInt()
nextByte()
nextShort()
nextDouble()....
4.引用.close();
注意:一定在一个类中使用完毕以后再关闭,否则重新开启也无法使用
键盘接收3个整数,比较大小,找出最小的
/*
Random:产生随机数
1.导包 import java.util.Random;
2.创建Random类型的变量|引用
3.引用.功能名字()
nextInt() 产生一个int范围内的随机整数
nextInt(n) 产生0~n随机整数 [0,n)
[0,max] 引用.nextInt(max+1)
[min,max] 引用.nextInt(max-min+1)+min
nextDouble() 产生[0,1)之间的随机小数
随机生成3个整数,比较大小,求最大的
伪随机数
*/
import java.util.Random;
public class Random11{
public static void main(String[] args){
//1.导包
//2.创建Random类型的变量|引用
Random ran=new Random();
//3.使用功能
int i=ran.nextInt();
//[0,5]
i=ran.nextInt(6);
System.out.println(i);
//[3,5]
i=ran.nextInt(5-3+1)+3;
System.out.println(i);
double d=ran.nextDouble()+3;
System.out.println(d);
//三个数求大小
int a=5;
int b=10;
int c=8;
int max=a>b ? a : b;
max=max>c ? max : c;
System.out.println(max);
max=a>b & a>c ? a : (b>c ? b : c);
System.out.println(max);
}
}
java中的流程控制语句
顺序结构:从上倒下,从左到
选择结构:根据选择,决定执行的内容
循环结构:重复执行同样的操作
单分支|单选泽
if(条件表达式){
语句体;
}
条件表达式必须值为boolean类型的表达式
如果条件表达式结果为false,就不执行跳过整个if结构
如果条件表达式结果为true,执行{}中的语句体
双分支|双选择
if(条件表达式){
语句体1;
}else{
语句体2;
}
无论是否满足条件,都会执行语句体
多分支|多选择:
if(条件表达式1){
语句体1;
}else if(条件表达式2){
语句体2;
}else if(条件表达式3){
语句体3;
}
....
else{
以上条件都不满足执行的内容
}
if语句和条件运算符之间的选择:
1.条件运算符肯定会得到结果
2.麻烦的使用if,简单的能使用条件运算符就是用条件运算符
无论是多选还是单选,双选,只要语句体只有1句,前后的{}可以省略
switch语句:定值判断
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
....
default:
语句体n;
break;
}
表达式|变量: byte,short,int,char,枚举(1.5),字符串(1.7)
case:拿表达式的结果与case后的值进行判断,如果相同,执行对应的语句体;
break:结束这个switch语句,如果没有break会发生case穿透
default: else作用一致,以上case都不满足条件,执行default中的语句体
可以在switch语句中的任何位置,改变位置注意break的问题
if语句可以做区间判断,可以做定值判断
switch 只能做定值判断