&: 两个2进制的操做数,同一位数的两个数若是有一个为0结果就为0,两个都为1才是1.java
| : 两个2进制的操做数,同一位数的两个数若是有一个为1,两个都为0才是0.dom
^ : 两个2进制的操做数,同一位数的两个数若是相同为0,不一样为1.spa
位移运算符对象
<< 左移 :把第一个二进制的操做数向左移动第二个操做数个位数,空余的位数补0,最终获得二进制的值-->转为十进制 m << n ==> m*2^n字符串
>> 右移 :把第一个二进制的操做数向右移动第二个操做数个位数,移动出的位数不要,只保留剩下的位数的值-->转为十进制 m >> n ==> m/2^nit
1) 导包 指定Scanner类的位置 import -> java.util.Scanner.(类的上面使用import导包)import
2) 建立Scanner的对象实例.变量
3) 调用方法:变量=引用.功能名字();随机数
功能名字:循环
next类型 | nextInt |nextByte | nextDouble
◎.next() 接收字符串类型的数据以上一系列的next功能,从有效字符开始接收,遇到空格,tab就不接收了,直到遇到enter结束功能 ,enter不会接收
◎.nextLine() 接收一整行的数据,接收enter结束,enter会被接收
1)导包 import java.util.Random
2).建立Random类型的变量
3).使用功能
nextInt() 随机产生一个int范围内的随机数
nextInt(整数n) 随机产生一个 [0,n)整数
nextDouble() 产生[0,1)之间的随机小数
公式:
[min,max) ran.nextInt(max-min)+min;
[min,max] ran.nextInt(max-min+1)+min;
3.Math 数据类
不须要导包:java.lang下的直接类不须要导包
Math.random() 功能名字 [0,1)随机小数
公式:
[0,max) 随机整数 (int)(Math.random()*max)
[0,max] 随机整数 (int)(Math.random()*(max+1))
[min,max) 随机整数 (int)(Math.random()*(max-min)+min)
[min,max] 随机整数 (int)(Math.random()*(max-min+1)+min)
Math.round(数据) 四舍五入
Math.abs(数据); 绝对值
Math.sqrt(数据); 平方根 double类型的值
选择结构: if..else switch..
单选择|单分支:
if(条件表达式){
语句体;
}
双选择|双分支:
if(条件表达式){
语句体1;
}else{
语句体2;
}
多选泽|多分支:
if(条件表达式1){
语句体1
}else if(条件表达式2){
语句体2
}else if(条件表达式3){
语句体3
}
....
else{
语句体n;
}
switch语句:定值判断
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
....
default:
语句体;
break;
}
表达式: 通常为变量|表达式|定值(不使用)
byte,short,char,枚举(1.5),字符串(1.7)
◎case:表达式的结果须要与case后的值进行判断,若是知足条件就执行后语句体,若是不知足条件,继续向下面的case进行判断.
◎break:结束swtich,防止case穿透:若是知足条件的case后的语句体后没有break,下面的case再也不判断.直接执行他们的语句体,直到遇到下一个break,或者switch的结束才结束.
◎default: 与if的else很像,都是以上case 都知足,执行default中的内容能够写在switch语句的任何位置,通常放在最后,放在最后break能够省略,若是放在其余位置省略break会发生case穿透.
1.for循环
for(条件初始化 ;条件判断 ;条件变化 ){
循环体语句;
}
条件初始化 :声明一个变量并赋值 int i=0;
条件判断: 对i条件的值进行判断,判断是否知足我让你循环的条件,若是知足条件,继续执行循环体语句,不知足条件结束循环
条件变化: i自身值的改变,若是不改变就会发生死循环(永远执行的循环)
执行流程:
1.执行条件初始化
2.执行条件判断,值为boolean类型的表达式
3.若是值为false,循环结束,值为true,执行循环体语句
4.执行条件变化:从第二次循环开始,重复执行第2,3,4步
注意: 循环体语句只有一句的时候,先后的{}能够省略