java學習之路之javaSE基礎2

java學習之路之javaSE基礎2

全部的代碼都是引用他人寫的。java

一、邏輯運算符

 1 //&,|,^,!
 2         //int x = 10;
 3         //5 < x < 15
 4         //x > 5 & x < 15
 5         //邏輯與 & 而且and 遇false則false
 6         int a = 10;
 7         int b = 20;
 8         int c = 30;
 9         /*System.out.println(a < b & b < c);            //true & true = true
10         System.out.println(a < b & b > c);                //true & false = false
11         System.out.println(a > b & b < c);                //false & true = false
12         System.out.println(a > b & b > c);                //false & false = false*/
13 
14         //邏輯或 或or 遇true則true
15         /*System.out.println(a < b | b < c);                //true | true = true
16         System.out.println(a < b | b > c);                //true | false = true
17         System.out.println(a > b | b < c);                //false | true = true
18         System.out.println(a > b | b > c);                //false | flase = false*/
19 
20         //邏輯異或 ^ 兩邊相同爲false,兩邊不一樣爲true
21         /*System.out.println(a < b ^ b < c);                //true | true = false
22         System.out.println(a < b ^ b > c);                //true | false = true
23         System.out.println(a > b ^ b < c);                //false | true = true
24         System.out.println(a > b ^ b > c);                //false | flase = false*/
25 
26         //邏輯非!
27         System.out.println(!true);
28         System.out.println(!!true);
View Code
 1 /*
 2     &&與&的區別
 3     * a:最終結果同樣。
 4     * b:&&具備短路效果。左邊是false,右邊不執行。
 5 
 6     ||與|的區別
 7     a:最終的結果是同樣
 8     b:||具備短路效果,左邊爲true,右邊不執行
 9     */
10     public static void main(String[] args) {
11         /*int a = 10;
12         int b = 20;
13         int c = 30;
14         System.out.println(a < b && b < c);                //true && true = true
15         System.out.println(a < b && b > c);                //true && false = false
16         System.out.println(a > b && b < c);                //false && true = false
17         System.out.println(a > b && b > c);                //false && false = false*/
18 
19         int x = 3;
20         int y = 4;
21         //System.out.println((++x == 3) & (++y == 4));    //false & false = false
22         //System.out.println("x = " + x);                    //x = 4
23         //System.out.println("y = " + y);                    //y = 5
24         System.out.println("---------------------------");
25         System.out.println((++x == 3) && (++y == 4));    //false & false = false
26         System.out.println("x = " + x);                    //x = 4
27         System.out.println("y = " + y);                    //y = 4
28     }
View Code

 

二、位運算符

 1 class Demo1_Operator {
 2     public static void main(String[] args) {
 3         /*
 4         * &,|,^,~ 的用法
 5         * &:有0則0
 6         * |:有1則1
 7         * ^:相同則0,不一樣則1
 8         * ~:按位取反
 9         */
10 
11         System.out.println(6 & 3);                //2
12         System.out.println(6 | 3);                //7
13         System.out.println(6 ^ 3);                //5    
14         System.out.println(~6);                    //-7?                    
15     }
16 }
17 /*
18     110
19 &    011
20 -----------
21     010
22 
23     110
24 |    011
25 -----------
26     111
27 
28     110
29 ^    011
30 -----------
31     101
32 
33     00000000 00000000 00000000 00000110        6的原碼反碼補碼都是自己
34     11111111 11111111 11111111 11111001        對6取反
35 -    00000000 00000000 00000000 00000001
36 ---------------------------------------
37     11111111 11111111 11111111 11111000        反碼
38     10000000 00000000 00000000 00000111        原碼(-7)
39 */
View Code
 1 /*
 2         * 位異或運算符的特色
 3 
 4         * ^的特色:一個數據對另外一個數據位異或兩次,該數自己不變。
 5         */
 6 
 7         //System.out.println(5 ^ 10 ^ 10);
 8         //System.out.println(5 ^ 10 ^ 5);
 9 
10         /*
11         * 請本身實現兩個整數變量的交換(不須要定義第三方變量)
12         * 注意:之後講課的過程當中,我沒有明確指定數據的類型,默認int類型。
13         */
14 
15         int x = 10;
16         int y = 5;
17 
18         //須要第三方變量,開發推薦用這種
19         /*int temp;
20         temp = x;
21         x = y;
22         y = temp;*/
23 
24         //不須要定義第三方變量,有弊端,有可能會超出int的取值範圍
25         /*x = x + y;                //10 + 5 = 15
26         y = x - y;                //15 - 5 = 10
27         x = x - y;                //15 - 10 = 5*/
28 
29         //不須要第三方變量,經過^來作
30         x = x ^ y;                // 10 ^ 5 
31         y = x ^ y;                // 10 ^ 5 ^ 5    y = 10
32         x = x ^ y;                // 10 ^ 5 ^ 10  x = 5
33 
34         System.out.println("x = " + x + ",y = " + y);
View Code
 1 /*
 2         *  <<:左移    左邊最高位丟棄,右邊補齊0
 3         *  >>:右移    最高位是0,左邊補齊0;最高爲是1,左邊補齊1
 4         *  >>>:無符號右移 不管最高位是0仍是1,左邊補齊0
 5         *  最有效率的算出2 * 8的結果
 6         */
 7 
 8         //左移,向左移動幾位就是乘以2的幾回冪
 9         //System.out.println(12 << 1);        //24
10         //System.out.println(12 << 2);        //48
11 
12         /*
13         00000000 00000000 00000000 00001100        12的補碼
14      (0)0000000 00000000 00000000 000011000        24的補碼
15     (00)000000 00000000 00000000 0000110000        48的補碼
16         */
17 
18         //右移,向右移動幾位就是除以2的幾回冪
19         //System.out.println(12 >> 1);
20         //System.out.println(12 >> 2);
21 
22         /*
23         00000000 00000000 00000000 00001100        12的補碼
24         000000000 00000000 00000000 0000110(0)    6
25         0000000000 00000000 00000000 000011(00) 3
26         */
27 
28         //最有效率的算出2 * 8的結果
29         System.out.println(2 << 3);
View Code

 

三、三元運算符

1 //(關係表達式) ? 表達式1 : 表達式2;
2         int x = 10;
3         int y = 5;
4         int z;
5         z = (x > y) ? x : y;
6 
7         System.out.println("z = " + z);
View Code
 1 /*
 2 * a:導包
 3         * 格式:
 4             * import java.util.Scanner; 
 5         * 位置:
 6             * 在class上面。
 7     * b:建立鍵盤錄入對象
 8         * 格式:
 9             * Scanner sc = new Scanner(System.in);
10     * c:經過對象獲取數據    
11         * 格式:
12             * int x = sc.nextInt();
13 */
14 import java.util.Scanner;
15 class Demo2_Scanner {
16     public static void main(String[] args) {
17         /*Scanner sc = new Scanner(System.in);            //建立鍵盤錄入對象
18         System.out.println("請輸入一個整數:");
19         int x = sc.nextInt();                            //將鍵盤錄入的數據存儲在x中
20         System.out.println(x);*/
21 
22         //錄入兩個整數
23         Scanner sc = new Scanner(System.in);            //建立鍵盤錄入對象
24         System.out.println("請輸入第一個整數:");
25         int x = sc.nextInt();                            //將鍵盤錄入的數據存儲在x中
26         System.out.println(x);
27 
28         System.out.println("請輸入第二個整數:");
29         int y = sc.nextInt();                            //將鍵盤錄入的數據存儲在y中
30         System.out.println(y);
31     }
32 }
View Code
 1 /*
 2         * A:案例演示
 3             * 比較兩個整數是否相同
 4         * B:案例演示
 5             * 獲取三個整數中的最大值
 6         */
 7 
 8         //比較兩個整數是否相同
 9 
10         /*int x = 10;
11         int y = 10;
12 
13         //boolean b = (x == y) ? true : false;
14         boolean b = (x == y);
15         System.out.println("b = " +  b);*/
16 
17         //獲取三個整數中的最大值
18         int a = 10;
19         int b = 20;
20         int c = 30;
21 
22         //先比較任意兩個數的值,找出這兩個數中的最大值
23         int temp = (a > b) ? a : b;
24         //用前兩個數的最大值與第三個數比較,獲取最大值
25         int max = (temp > c) ? temp : c;
26         System.out.println("max =" + max);
View Code
 1 /*
 2     * A:案例演示
 3         * 鍵盤錄入練習:鍵盤錄入兩個數據,並對這兩個數據求和,輸出其結果
 4     * B:案例演示
 5         * 鍵盤錄入練習:鍵盤錄入兩個數據,獲取這兩個數據中的最大值
 6 
 7     */
 8     public static void main(String[] args) {
 9         Scanner sc = new Scanner(System.in);    //建立鍵盤錄入對象
10         
11         //鍵盤錄入練習:鍵盤錄入兩個數據,並對這兩個數據求和,輸出其結果
12         /*System.out.println("請輸入第一個整數:");
13         int x = sc.nextInt();                    //將鍵盤錄入的數據存儲在x中
14         System.out.println("請輸入第二個整數:");
15         int y = sc.nextInt();                    //將鍵盤錄入的數據存儲在y中
16         int sum = x + y;
17         System.out.println(sum);*/
18 
19         //鍵盤錄入練習:鍵盤錄入兩個數據,獲取這兩個數據中的最大值
20         System.out.println("請輸入第一個整數:");
21         int x = sc.nextInt();                    //將鍵盤錄入的數據存儲在x中
22         System.out.println("請輸入第二個整數:");
23         int y = sc.nextInt();                    //將鍵盤錄入的數據存儲在y中
24 
25         int max = (x > y) ? x : y;                //獲取x和y中的最大值
26         System.out.println("max = " + max);
27     }
View Code
 1 /*
 2 * A:案例演示
 3     * 鍵盤錄入練習:鍵盤錄入兩個數據,比較這兩個數據是否相等
 4 * B:案例演示
 5     * 鍵盤錄入練習:鍵盤錄入三個數據,獲取這三個數據中的最大值
 6 */
 7 import java.util.Scanner;                            //導包
 8 class Test3_Scanner {
 9     public static void main(String[] args) {
10         Scanner sc = new Scanner(System.in);        //建立鍵盤錄入對象
11 
12         //鍵盤錄入練習:鍵盤錄入兩個數據,比較這兩個數據是否相等
13         /*System.out.println("請輸入第一個整數:");
14         int x = sc.nextInt();                        //將鍵盤錄入的數據存儲在x中
15         System.out.println("請輸入第二個整數:");
16         int y = sc.nextInt();                        //將鍵盤錄入的數據存儲在y中
17 
18         //boolean b = (x == y)? true : false;
19         boolean b = (x == y);
20         System.out.println(b);*/
21 
22         //鍵盤錄入練習:鍵盤錄入三個數據,獲取這三個數據中的最大值
23         System.out.println("請輸入第一個整數:");
24         int x = sc.nextInt();                        //將鍵盤錄入的數據存儲在x中
25         System.out.println("請輸入第二個整數:");
26         int y = sc.nextInt();                        //將鍵盤錄入的數據存儲在y中
27         System.out.println("請輸入第三個整數:");
28         int z = sc.nextInt();                        //將鍵盤錄入的數據存儲在y中
29 
30         //定義臨時變量記錄住比較出前兩個變量中的最大值
31         int temp = (x > y) ? x : y;
32         //將比較後的結果與第三個變量中的值比較,比較出三個數中的最大值
33         int max = (temp > z) ? temp : z;
34         System.out.println(max);
35     }
36 }
View Code

 

四、順序結構

1                 System.out.println("Hello World!11111");
2         System.out.println("Hello World!3333");
3         System.out.println("Hello World!22222");
4         System.out.println("Hello World!44444");            
View Code

 

五、選擇結構if

 1 /*
 2 * C:if語句的格式1
 3 * 
 4         if(比較表達式) {
 5             語句體;
 6         }
 7 * D:執行流程:
 8     * 先計算比較表達式的值,看其返回值是true仍是false。
 9     * 若是是true,就執行語句體;
10     * 若是是false,就不執行語句體;
11 */
12 class Demo1_If {
13     public static void main(String[] args) {
14         int age = 17;
15 
16         if (age >= 18) {
17             System.out.println("能夠瀏覽本網站");
18         }
19 
20         System.out.println("完了");
21     }
22 }
View Code
 1 /*
 2 *    a:比較表達式不管簡單仍是複雜,結果必須是boolean類型
 3     * b:if語句控制的語句體若是是一條語句,大括號能夠省略;
 4       * 若是是多條語句,就不能省略。建議永遠不要省略。
 5     * c:通常來講:有左大括號就沒有分號,有分號就沒有左大括號
 6 
 7 */
 8 class Demo2_If {
 9     public static void main(String[] args) {
10         int age = 17;
11 
12         if (age >= 18 && age <= 60) {
13             System.out.println("能夠瀏覽本網站");
14             //int x = 10;                是兩句話,int x聲明是一句,x = 10 賦值是一句
15         }
16         System.out.println("完了");
17         
18     }
19 }
View Code
 1 /*
 2 * A:if語句的格式2
 3 * 
 4         if(比較表達式) {
 5             語句體1;
 6         }else {
 7             語句體2;
 8         }
 9 * B:執行流程:
10     * 首先計算比較表達式的值,看其返回值是true仍是false。
11     * 若是是true,就執行語句體1;
12     * 若是是false,就執行語句體2;
13 * C:案例演示
14     * a:獲取兩個數據中較大的值
15     * b:判斷一個數據是奇數仍是偶數,並輸出是奇數仍是偶數
16 
17     * 注意事項:else後面是沒有比較表達式的,只有if後面有。
18 */
19 class Demo3_If {
20     public static void main(String[] args) {
21         /*int x = 0;
22         if (x == 1) {
23             System.out.println("男廁所歡迎您");
24         }else {
25             System.out.println("女廁所歡迎您");
26         }*/
27         
28         //a:獲取兩個數據中較大的值
29         /*int x = 10;
30         int y = 20;
31         int z;
32 
33         if (x > y) {
34             z = x;
35         }else {
36             z = y;
37         }
38 
39         System.out.println(z);*/
40         
41         //b:判斷一個數據是奇數仍是偶數,並輸出是奇數仍是偶數
42         int num = 11;
43         if (num % 2 == 0) {
44             System.out.println(num + "是一個偶數");
45         }else {
46             System.out.println(num + "是一個奇數");
47         }
48     }
49 }
View Code

 

 1 /*
 2 * A:案例演示
 3     * if語句和三元運算符完成同一個效果
 4 * B:案例演示
 5     * if語句和三元運算符的區別
 6     
 7     * 三元運算符實現的,均可以採用if語句實現。反之不成立。
 8     
 9     * 何時if語句實現不能用三元改進呢?
10         * 當if語句控制的操做是一個輸出語句的時候就不能。
11         * 爲何呢?由於三元運算符是一個運算符,運算符操做完畢就應該有一個結果,而不是一個輸出。
12 
13 */
14 class Demo4_If {
15     public static void main(String[] args) {
16         int x = 10;
17         int y = 20;
18         int z;
19 
20         if (x > y) {
21             //z = x;
22             System.out.println(x + "是最大值");
23         }else {
24             //z = y;
25             System.out.println(y + "是最大值");
26         }
27 
28         //System.out.println(z);
29 
30         int a = 20;
31         int b = 30;
32 
33         int c = (a > b)? a : b;
34     }
35 }
View Code

 

 1 /*
 2 * A:if語句的格式3:
 3 * 
 4         if(比較表達式1) {
 5             語句體1;
 6         }else if(比較表達式2) {
 7             語句體2;
 8         }else if(比較表達式3) {
 9             語句體3;
10         }
11         ...
12         else {
13             語句體n+1;
14         }
15 * B:執行流程:
16     * 首先計算比較表達式1看其返回值是true仍是false,
17     * 若是是true,就執行語句體1,if語句結束。
18     * 若是是false,接着計算比較表達式2看其返回值是true仍是false,
19     
20     * 若是是true,就執行語句體2,if語句結束。
21     * 若是是false,接着計算比較表達式3看其返回值是true仍是false,
22     
23     * 若是都是false,就執行語句體n+1。
24 * C:注意事項:最後一個else能夠省略,可是建議不要省略,能夠對範圍外的錯誤值提示 
25 */
26 class Demo5_If {
27     public static void main(String[] args) {
28         int x = 2;
29         if (x == 1) {
30             System.out.println("男廁所歡迎您");
31         }else if (x == 0) {
32             System.out.println("女廁所歡迎您");
33         }else {
34             System.out.println("沒法識別您的性別");
35         }
36     }
37 }
View Code
 1 /*
 2 * A:案例演示
 3     * 需求:獲取三個數據中的最大值
 4     * if語句的嵌套使用。
 5 */
 6 class Demo6_IfIf {
 7     public static void main(String[] args) {
 8         int a = 40;
 9         int b = 50;
10         int c = 30;
11         
12         if (a > b) {
13             if (a > c) {
14                 System.out.println(a + "是最大值");
15             }else {
16                 System.out.println(c + "是最大值");
17             }
18 
19         }else {    //b >= a
20             if (b > c) {
21                 System.out.println(b + "是最大值");
22             }else {
23                 System.out.println(c + "是最大值");
24             }
25         }
26     }
27 }
View Code
 1 import java.util.Scanner;
 2 class Test1_If {
 3     public static void main(String[] args) {
 4         /*
 5         * A:練習1
 6         * 
 7                 需求:鍵盤錄入一個成績,判斷並輸出成績的等級。
 8                 90-100 優
 9                 80-89  良
10                 70-79  中
11                 60-69  及
12                 0-59   差
13                 
14         * B:練習2
15             * 需求:
16                 * 鍵盤錄入x的值,計算出y的並輸出。
17                 
18                 * x>=3    y = 2 * x + 1;
19                 * -1<x<3    y = 2 * x;
20                 * x<=-1    y = 2 * x - 1;
21         */
22         Scanner sc = new Scanner(System.in);
23 
24         //需求:鍵盤錄入一個成績,判斷並輸出成績的等級。
25         /*System.out.println("請輸入學生成績範圍在1到100之間");
26         int x = sc.nextInt();
27 
28         if (x >= 90 && x <= 100) {
29             System.out.println("優");
30         }else if (x >= 80 && x <= 89 ) {
31             System.out.println("良");
32         }else if (x >= 70 && x <= 79 ) {
33             System.out.println("中");
34         }else if (x >= 60 && x <= 69 ) {
35             System.out.println("及");
36         }else if (x >= 0 && x <= 59 ) {
37             System.out.println("差");
38         }else {
39             System.out.println("成績錄入錯誤");
40         }*/
41 
42         //需求: 鍵盤錄入x的值,計算出y的並輸出
43         System.out.println("請輸入一個整數:");
44         int x = sc.nextInt();
45         int y = 0;
46         if (x >= 3) {
47             y = 2 * x + 1;
48         }else if (x > -1 && x < 3) {
49             y = 2 * x;
50         }else if (x <= -1) {
51             y = 2 * x - 1;
52         }
53 
54         System.out.println(y);
55     }
56 }
View Code

 

 

六、選擇結構switch

 1 class Demo1_Switch {
 2     public static void main(String[] args) {
 3         /*
 4         * A:switch語句的格式
 5         *        int x = 10;
 6                 switch(表達式) {        //基本數據類型能夠接收byte,short,char,int
 7                       case 值1:        //引用數據類型能夠接收枚舉(JDK1.5)String字符串(JDK1.7)
 8                         語句體1;
 9                         break;
10                         case 值2:
11                         語句體2;
12                         break;
13 14                         default:    
15                         語句體n+1;
16                         break;
17                 }
18          
19         * B:switch語句的格式解釋
20         * C:面試題
21             * byte能夠做爲switch的表達式嗎?
22             * long能夠做爲switch的表達式嗎?
23             * String能夠做爲switch的表達式嗎?
24         * C:執行流程
25             * 先計算表達式的值
26             * 而後和case後面的匹配,若是有就執行對應的語句,不然執行default控制的語句
27         */
28 
29         String name = "rose";
30         String gender = "妖";
31         switch (gender) {
32         case "男士":
33             System.out.println(name + "是一位" + gender + "喜歡吃飯睡覺打dota");
34         break;
35         case "女士":
36             System.out.println(name + "是一位" + gender + "喜歡逛街購物美容");
37         break;
38         default:
39             System.out.println(name + "是一位" + gender + "打雌性激素維持美貌容顏");
40         break;
41         }
42     }
43 }
View Code
 1 class Test1_Switch {
 2     public static void main(String[] args) {
 3         //* A:整數(給定一個值,輸出對應星期幾)
 4         int week = 1;
 5         switch (week) {
 6         case 1:
 7             System.out.println("星期一");
 8         break;
 9         case 2:
10             System.out.println("星期二");
11         break;
12         case 3:
13             System.out.println("星期三");
14         break;
15         case 4:
16             System.out.println("星期四");
17         break;
18         case 5:
19             System.out.println("星期五");
20         break;
21         case 6:
22             System.out.println("星期六");
23         break;
24         case 7:
25             System.out.println("星期日");
26         break;
27         default:
28             System.out.println("對不起沒有對應的星期");
29         break;
30         }
31     }
32 }
View Code
 1 class Test2_Switch {
 2     public static void main(String[] args) {
 3         // A:看程序寫結果:
 4 
 5         /*int x = 2;
 6         int y = 3;
 7         switch(x){
 8             default:
 9                 y++;
10                 break;
11             case 3:
12                 y++;
13             case 4:
14                 y++;
15         }
16         System.out.println("y="+y);*/
17     
18     //B:看程序寫結果:
19 
20         int x = 2;
21         int y = 3;
22         switch(x){
23             default:
24                 y++;
25             case 3:
26                 y++;
27             case 4:
28                 y++;
29         }
30         System.out.println("y="+y);
31     }
32 }
View Code
 1 import java.util.Scanner;
 2 class Test3_SwitchIf {
 3     public static void main(String[] args) {
 4         /*
 5 
 6         * 鍵盤錄入月份,輸出對應的季節
 7         一年有四季
 8         3,4,5春季
 9         6,7,8夏季
10         9,10,11秋季
11         12,1,2冬季
12         */
13         Scanner sc = new Scanner(System.in);    //建立鍵盤錄入對象
14         System.out.println("請輸入月份");
15         int month = sc.nextInt();                //將鍵盤錄入的結果存儲在month
16         /*switch (month) {
17         case 3:
18         case 4:
19         case 5:
20             System.out.println(month + "月是春季");
21         break;
22         case 6:
23         case 7:
24         case 8:
25             System.out.println(month + "月是夏季");
26         break;
27         case 9:
28         case 10:
29         case 11:
30             System.out.println(month + "月是秋季");
31         break;
32         case 12:
33         case 1:
34         case 2:
35             System.out.println(month + "月是冬季");
36         break;
37         default:
38             System.out.println("對不起沒有對應的季節");
39         break;
40         }*/
41 
42         //用if語句來完成月份對應季節
43         if (month > 12 || month < 1) {
44             System.out.println("對不起沒有對應的季節");
45         }else if (month >= 3 && month <= 5) {
46             System.out.println(month + "月是春季");
47         }else if (month >= 6 && month <= 8) {
48             System.out.println(month + "月是夏季");
49         }else if (month >= 9 && month <= 11) {
50             System.out.println(month + "月是秋季");
51         }else {
52             System.out.println(month + "月是冬季");
53         }
54     }
55 }
View Code
相關文章
相關標籤/搜索