java-2
阿新 • • 發佈:2018-03-23
als 異或 再次 隨機 select public java chan tint
學習內容:
1.運算符:
自增、自減
int a = 4; int b = 3; a++;//先運算後加,如果有賦值、比較之類的運算,會先把a當前值進行賦值、比較,然後自身+1,如果沒有參與運算,則直接自身+1 b--; ++a;//先加後運算,自身先+1,然後+1的這個值進行賦值、比較之類的運算 --b; System.out.println(a); System.out.println(b);
2.賦值
int d = 5; int e = 7; System.out.println(d=e); System.out.println(d==e); //註意,由於上方d的值已經被賦予e的值,所以返回true
3.邏輯運算
長路、短路與運算
int i = 2; System.out.println(i==1 & i++ == 2); System.out.println(i); //長路與,無論第一個表達式真假與否,第二個表達式都會被運算,輸出i=3 int j = 2; System.out.println(j==1 && j++ ==2); System.out.println(j); //短路與,表達式一為假,第二個表達式不運算,輸出j為2,如果表達式1為真,都為真,都會執行
長路、短路或運算
int i = 2; int j = 2; System.out.println(j==1 || j++ ==2); System.out.println(j);//表達式1為假,但表達式2為真,表達式2會被執行,輸出j為3
綜合運用:
int x = 1,y = 1; if(x++==2 & ++y==2) //假 真 假 if內語句不執行 但是++y執行,同時x++執行 { x =7; } System.out.println("x="+x+",y="+y); //x=2,y=2 int x = 1,y = 1; if(x++==2 && ++y==2)//假 真 假 if內語句不執行 ++y不執行 { x =7; } System.out.println("x="+x+",y="+y); //x=2,y=1 int x = 1,y = 1; if(x++==1 | ++y==1) 真 假 真 ++y執行 if內語句執行 { x =7; } System.out.println("x="+x+",y="+y); //x=7,y=2 int x = 1,y = 1; if(x++==1 || ++y==1) 真 假 真 ++y不執行 y=1 x=7 { x =7; } System.out.println("x="+x+",y="+y); //x=7,y=1
4.異或運算
相同為false,不同為true
boolean a = true; boolean b = false; System.out.println(a^b); //true System.out.println(a^!b); //false
5.Scanner類
import java.util.Scanner; public class Demo{ public static void main(String[] args){ Scanner s = new Scanner(System.in); System.out.println("請輸入一個數字:"); int i = s.nextInt(); System.out.println("您輸入的數字是"+i); String t = s.next(); System.out.println("你輸入的文字是"+t); s.close(); } }
6.Random類
import java.util.Random; class Test { public static void main(String[] args) { Random r = new Random(); //隨機數,取值範圍左閉右開 int z = r.nextInt(100); //隨機整數 double db = r.nextDouble(10); //隨機小數 } }
7.switch
JAVA中的switch語句可接收的參數有 byte short int long類型,
1.7及以後版本可接收String 否則string類型需要使用enum枚舉
8.for循環
class Test { public static void main(String[] args) { for(int i = 0;i<5;i++){ System.out.println(""); for(int j=0;j<i+1;j++){ System.out.print("*"); } } } }
PS:上例中的雙層for循環,外層循環控制行,內層循環控制列,輸出的效果類似於表格,利用該方法可以實現很多輸出效果:
例:
class test { public static void printn(){ int cou = 0; for(int i=1;i<=100;i++){ if(i%10==9|i/10==9){ }else{ if(i<10){ System.out.print(i+" "); }else{ System.out.print(i+" "); } cou++;// for語句內定義一個變量用來計數,每輸出一個滿足條件的數,該變量+1 if(cou%5==0){ System.out.println(""); } } } } public static void main(String[] args) { printn(); } }
for循環執行順序:
for(語句1;語句2;語句3){
執行語句;
}
語句1>>語句2,若為true>>執行語句>>語句3>>語句2,若為true,執行語句......>>語句3>>語句二,false,循環結束
PS while語句的使用技巧
利用while語句可以實現某些功能的控制臺循環執行的效果,例如:
while(true){ System.out.println("-------庫存管理-------"); System.out.println("1.查看庫存清單"); System.out.println("2.修改庫存數量"); System.out.println("3.退出"); System.out.println("請輸入要執行的操作序號:"); int select = se.nextInt(); switch(select){ case 1: CheckInventory(mba,tp,asus); break; case 2: ChangeInventory(mba,tp,asus); break; case 3: se.close(); return; default: System.out.println("操作號輸入錯誤,請重新輸入:"); } }
當用戶輸入錯誤時,可以實現Scanner的再次調用,並且使得switch語句再次進行判斷,
另外用戶可在執行完1或2的操作時,可選則執行其他的操作,
直到用戶選擇退出。
java-2