初识语句
一、 运算符
1、 赋值运算符,(1)基本运算符:只有一个“=”。它是java中唯一一个自右向左运算的符号;(2)扩展运算符,
格式:算术运算符+基础运算符,主要有+=、*=、/=、%=。
(3)特点,缺点:不直观;优点:自动做强制类型转换,提高执行效率。推荐使用扩展运算符。
2、 比较运算符(关系运算符),<、>、<=、>=、==、!=。结果是布尔类型的值。<、>、<=、>=只能用于byte、short、int、long、float、double、char类型的比较;==、!=可以引用类型类型的比较,也可以做基本类型的转换。
3、 逻辑运算符,(1)该运算符的两边操作数的值必须为布尔类型的表达式,常见的有:&、|、!、^、&&、||;(2)&&两个操作数的值都是true,则结果为true,否则结果为false,与&用法一样;(3)||两个操作数得值都是false,则结果是false,否则结果是true,与|用法一样;(4)!是取反的意思,操作数的值为true,结果是false,操作数的值为false,结果是true;(5)&&常用来做短路与,如果前一个操作数是false,结果直接是false,后面的操作数不用执行;(6)||是短路或,如果前一个操作数是true,结果直接是true,后面的操作数不用执行;(7)推荐使用&&和||。
4、 条件运算符,也称三目运算符,(1)格式:表达式?值1:值2;(2)执行流程:第一步,执行表达式,第二部判断,若果值是true,取值1,否则取值2.
5、 位运算符,(1)&,|,^,<<(右移),>>(左移);(2)特点:右移,左边的操作数转为二进制以后,向右移动第二个操作数个位数,保留分水岭左边的内容转为十进制。分水岭:左边操作数二进制形态的最右边有一个分水岭,8>>3 ==> 8/2^3 第一个操作数 / 2^第二个操作数次方。左移 左边的操作数转为二进制以后向左移动第二个操作数个位数,剩余空间补0,再转为十进制。8<<3 ==> 8*2^3 第一个操作数 * 2^第二个操作数次方。
6、 运算符优先级:(优先运算的级别)单目算数位关系,逻辑三目后赋值。
二、 引用数据类型
1、Scanner引用,(1)格式 引用类型 变量名=new 引用类型();
(2)使用功能,引用.功能名字();(3)使用步骤:导包 import 相对地址;提供类Scanner的位置位置:类的上面导包;创建Scanner类型的引用;功能名字();(4)常用的功能名字有:nextInt(); 接收用户输入的int类型整数nextByte();接收用户输入的byte类型整数nextShort();接收用户输入的Short类型整数nextLong();接收用户输入的Long类型整数nextDouble();接收用户输入的Double类型整数nextFloat();接收用户输入的Float类型整数
next();接收用户输入的String类型数据;(5)特点:next();接收用户输入的String类型数据;有效字符开始接收,直到遇到空格,多个宫格,tab结束接受,按enter停止功能;nextLine() 接收用户输入的一整行的内容,从第一个位置开始接收,知道输入enter结束;
nextLine()功能之前如果存在系列的next功能.需要处理遗留在缓冲区的enter;(6)引用.close(); 一定要在用完之后关闭,否则当前类中重新开启也不能用;注意: 字符串比较是否相等:字符串1.equals(字符串2),比较字符串1与字符串2是否相等,如果相等返回true,不相等是false。
2、Random引用Random类,产生随机数
(1)引用步骤:导包 java.util.Random;创建类型的引用 Random;(2)使用功能,产生随机整数
nextInt() --> int范围内的随机整数;nextInt(n) --> 随机产生 [0,n) 随机整数 ;n只能决定最大范围;产生随机小数;nextDouble() [0.0,1.0)随机小数(3)常用公式:
[0,max) 引用.nextInt(max);
[0,max] 引用.nextInt(max+1);
[min,max) 引用.nextInt(max-min)+min;
[min,max] 引用.nextInt(max-min+1)+min;
Random只是个伪随机数
三、 控制语句
1、 选择结构,(1)if结构,单分支结构(单选择结构)
if(条件表达式){
语句体...
}
条件表达式:值为boolean类型的表达式
执行流程:
1.计算条件表达式的结果
2.如果false,就跳过if结构,继续向下执行
3.如果为true,执行{}中的语句体
双分支结构(双选择结构)
if(条件表达式){
语句体1...
}else{
语句体2
}
如果条件满足执行语句体1,条件不满足执行语句体2
多分支结构(多选择结构)
if(条件表达式1){
语句体1...
}else if(条件表达式2){
语句体2...
}else if(条件表达式3){
语句体3
}else{
语句体n;
}
执行流程:
1.先执行条件表达式1,如果为true,执行语句体1
2.如果为false,计算条件表达式2,如果为true,执行语句体2
3.如果为false,计算条件表达式3,如果为true,执行语句体3
4....
5.如果以上条件都不满足,执行else中的语句体n
注意:语句体前后的{}可以省略,语句体只有一句的时候可以省略。
(2)switch结构,switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
....
default:
语句体n;
break;
}
表达式:byte,short,int,char , 枚举(1.5),字符串(1.7)这几种类型的值
case: case后面接的值是与表达式进行判断,必须是一个值,不能是区间
break: 防止case穿透 结束switch语句
case穿透:从满足条件的语句体开始执行,如果遇到break结束switch,如果没有break下面的case不再判断直接执行语句体
default:默认的,相当于else,如果以上都不满足,就执行default中的内容
default位置可以改变
(3)if与switch之间的区别
if可以做区间判断
switch 定值判断
能用switch都可以用if 能用if的不一定能用switch
2、 循环结构,for循环,while循环,do...while循环
(1)for循环,for循环
for(条件初始化;条件判断;条件变化 ){
循环体语句;
}
执行流程:
先执行条件初始化 声明一个变量并且赋值 i
条件判断 对i进行判断 值为boolean类型的表达式,如果值为false,for循环结构结束,如果值为true,执行循环体语句
条件变化
重复执行2,3步
注意:在循环体语句中可以使用i的值,变量i可以决定循环执行的次数。
(2)while(判断条件){
循环体语句;
条件变化;
}
判断条件是一个值为boolean类型的表达式
for: 次数循环 能确定变量的区间
while:条件循环
(3)do...while
无论是否满足条件,循环都至少执行一遍
条件初始化;
do{
循环体语句;
条件变化;
}while(判断条件);
(4)break和contine区别
break:
作用: 结束 停止 终止
应用场景:switch 语句 和 循环语句中
continue:
作用: 结束本次循环,直接进入到下一次循环
应用场景:只能用在循环中
(5)循环嵌套循环
for(条件初始化;条件判断;条件变化){
//代码
for(条件初始化;条件判断;条件变化){
//代码
}
//代码
}
外层循环没执行一次,内层循环执行一轮
一般: 外层循环和内容循环for,存在2个变量,一般使这两个变量与案例中的两个有规律的可变的值相对应