&: 兩個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步
注意: 循環體語句只有一句的時候,先後的{}能夠省略