邏輯運算符、位運算符、三元運算符、判斷語句(if,switch)

邏輯運算符java

  • 邏輯與 &:由false則false
  • 邏輯或 |:有true則true
  • 邏輯異或 ^:相同爲false,不一樣爲true
  • 邏輯非 !:非false則true,非true則false

&&和&的區別:spa

  1. 最終結果同樣
  2. &&具備短路效果,左邊是false,右邊不執行
  3. &是不管左邊false仍是true,右邊都會執行

位運算符code

  • 位與 & :有0則1
  • 位或 | :有1則1
  • 位異或 ^ :相同則0,不一樣則1;特色,一個數據對另外一個數據位異或兩次,該數自己不變。
  • * :按位取反

實現兩個整數變量的交換對象

方法一:建立第三方變量blog

1 int x=10;
2 int y=5;
3 
4 int temp;
5 temp=x;
6 x=y;
7 y=temp;
8 
9 System.out.println("x="+x+",y="+y);

方法二:有弊端,有可能超出int的取值範圍it

1 x=x+y;    //10+5=15
2 y=x-y;     //15-5=10
3 x=x-y;     //15-10=5

方法三:經過位異或 ^class

1 x=x^y;      //10^5
2 y=x^y;      //10^5^5    y=10
3 x=x^y;      //10^5^10   x=5

位移運算符import

<<:左移  左邊最高位丟棄,右邊補齊0變量

  • 向左移動幾位,就是乘以2的幾回冪
1 System.out.println(12<<1);      //24
2 System.out.println(12<<2);      //48

>>:右移  最高位是0,左邊補齊0;最高位是1,左邊補齊1方法

  • 向右移動幾回,就是除以2的幾回冪(取整)
1 System.out.println(12>>1);      //6
2 System.out.println(12>>2);      //3

>>>:無符號右移  不管最高位是0仍是1,左邊補齊0

三元運算符

  • 格式:(關係表達式)?表達式1:表達式2;
  • 若表達式正確,則取表達式1,若錯誤,則取表達式2
 1 //例子
 2 //比較兩個整數是否相同
 3 int x=10;
 4 int y=5;
 5 //boolean b = (x==y) ? true:false;
 6 boolean b = (x==y) ;
 7 System.out.println("b="+b);
 8 
 9 //獲取三個整數中的最大值
10 int a=10;
11 int b=20;
12 int c=30;
13 //先比較任意兩個數的值,找出這兩個數中的最大值
14 int temp = (a>b) ? a:b;
15 //用前兩個數的最大值與第三個數比較,獲取最大值
16 int max = (temp>c) ? temp:c;
17 System.out.println("max="+max);

鍵盤錄入的基本格式

(1)導包:import java.util.Scanner;在class上面

(2)建立鍵盤錄入對象:Scanner sc = new Scanner(System.in);

(3)經過對象獲取數據:int x = sc.nextInt();

 1 //例子
 2 import java.util.Scanner;
 3 class text{
 4        public static void main(String[] args){
 5              Scanner sc = new Scanner(System.in);//經過鍵盤錄入
 6              System.out.println("請輸入一個整數:");
 7              int x = sc.nextInt();
 8              System.out.println(x);
 9     }
10 }    
選擇結構if語句

if 語句格式一:

1 if(比較表達式){
2     語句體;
3   }

執行流程:

  • 先計算比較表達式的值,看其返回值是true仍是false。
  • 若是是true,就執行語句體。
  • 若是是false,就不執行語句體。
1     int age = 19;
2     if(age>=18){
3          System.out.println("能夠瀏覽");
4     }
5           System.out.println("不能夠");
6 }

注意事項:

(1)比較表達式不管簡單仍是複雜,結果必須是boolean類型;

(2)if語句控制的語句體若是是一條語句,大括號能夠省略;

if語句格式二:

 

1 if(比較表達式){
2         語句體1;
3 }else{
4          語句體2;
5 }            

 

執行流程:

  • 首先計算比較表達式的值,看其返回值是true仍是false;
  • 若是是true,就執行語句體1 ;
  • 若是是false,就執行語句體2;
//例子
//一、獲取兩個數中較大的值
int x = 1int y = 2;
if(x>y){
       System.out.println(x);
}else{
        System.out.println(y);
}
//二、判斷一個數是奇數仍是偶數,並輸出是奇數仍是偶數
int num = 10;
if(num%2==0){
       System.out.println(num+"是一個偶數");
}else{
        System.out.println(num+"是一個奇數");
}

if語句格式三:

 1 if(比較表達式1){
 2        語句體1;
 3 }else if(比較表達式二){
 4         語句體2;
 5 }else if(比較表達式三){
 6          語句體3;
 7 }
 8 //………………
 9 else{
10           語句體n+111 }

練習:

 1 //例子
 2 //一、鍵盤錄入一個成績,判斷並輸出成績的等級
 3 /*
 4    90-100:優
 5    80-89: 良
 6    70-79: 中
 7    60-69: 及
 8    0-59:  差  
 9 */
10 Scanner sc = new Scanenr(System.in);
11 System.out.println("請輸入學生成績");
12 int x = sc.nextInt();
13 if(x>=90 && x<=100){
14        System.out.println("優");
15 }else if(x>=80 && x<=89){
16         System.out.println("良");
17 }else if(x>=70 && x<=79){
18         System.out.println("中");
19 }else if(x>=60 && x<=69){
20         System.out.println("及");
21 }else if(x>=0 && x<=59){
22         System.out.println("差");
23 }else{
24         System.out.println("成績錄入錯誤");
25 }

if語句的嵌套使用:

 1 //例子
 2 //獲取三個數的最大值
 3 int a = 10;
 4 int b = 20;
 5 int c = 30;
 6 if(a>b){
 7      if(a>c){
 8         System.out.println(a+"是最大值");
 9      }else{
10          System.out.println(c+"是最大值");
11       }           
12 }else{    //b>=a
13       if(b>c){
14           System.out.println(b+"是最大值");
15 }else{
16            System.out.println(c+"是最大值");
17         }      
18 }    

switch語句:

int x=10;
switch(表達式){
        case 值1:
           語句體1;
            break;
        case 值2:
           語句體1;
            break;
           //........
          default:
            語句體n+1break;
}
 1 //例子
 2 //給定一個值,輸出對應星期幾
 3 int week = 5;
 4 switch (week) {
 5     case 1:
 6           System.out.println("星期一");
 7            break 8     case 2:
 9           System.out.println("星期二");
10            break11     case 3:
12           System.out.println("星期三");
13            break14     case 4:
15           System.out.println("星期四");
16            break17     case 5:
18           System.out.println("星期五");
19            break20     case 6:
21           System.out.println("星期六");
22            break23     case 7:
24           System.out.println("星期日");
25            break26      default:
27            System.out.println("沒有對應的星期");
28             break;
29 }
相關文章
相關標籤/搜索