1. 程式人生 > >java基礎--操作符

java基礎--操作符

void bool string pub 身高 oid 位操作 rgs -h

1.操作符

在Java中操作符有以下幾類:

  • 算術運算符
  • 關系操作符
  • 邏輯運算符
  • 位操作符
  • 賦值操作符
  • 三元操作符

1.1算術運算符

常見的操作符有:+,-,*,/,%,++,--

1.1.1基本的加 減 乘 除

public class HelloWorld {
    public static void main(String[] args) {
        int i = 10;
        int j = 5;
        int a = i+j;
        int b = i - j;
        int c = i*j;
        int d = i /j;
    }
}

1.1.2從鍵盤讀取數據

需要用到從控制臺輸入數據,所以需要用到Scanner類,這個類在java.util包中 。

可以使用scanner中的方法:

  • next():讀取一行數據
  • nextLine():讀取一行數據
  • nextInt():讀取一個整型數據
  • 同理還可以是其他類型如nextFloat()等等

例子:從鍵盤輸入兩個數,並輸出他們的和

import java.util.*;

public class addNum {
    public static void main(String[] args) {
        System.out.print("first num:");
        
int num1=new Scanner(System.in).nextInt(); System.out.print("second num:"); int num2=new Scanner(System.in).nextInt(); System.out.println("the sum is:"+(num1+num2)); } }

1.1.3取模%與取整/

int i=13%2;//i=1
int j=13/2;//j=6

1.1.4自增與自減(++,--)

在原來的基礎上增加1或者減少1

public class HelloWorld {
    
public static void main(String[] args) { int i = 5; i++; System.out.println(i);//輸出為6 } }

但自增與自減有前置和後置的區別:

前置++:先+1,後取值

後置++:先取值,後+1

public class HelloWorld {
    public static void main(String[] args) {
        int i = 5;
        System.out.println(i++); //輸出5
        System.out.println(i);   //輸出6
         
        int j = 5;
        System.out.println(++j); //輸出6
        System.out.println(j);   //輸出6
    }
}

1.1.6小程序BMI

BMI的計算公式是 體重(kg) / (身高*身高)

import java.util.Scanner;

public class BMI {
    public static void main(String[] args) {
        System.out.print("請輸入你的體重:");
        float weight=new Scanner(System.in).nextFloat();
        System.out.print("請輸入你的身高:");
        float height=new Scanner(System.in).nextFloat();
        System.out.println("你的BMI為:"+weight/(height*height));
    }
}

1.2關系操作符

常見的關系操作符有:>, >= ,< , <= ,,== ,!=

public class HelloWorld {
    public static void main(String[] args) {
       int a = 5;
       int b = 6;
       int c = 5;
        
       System.out.println(a>b);  //返回 false
       System.out.println(a>=c);  //返回 true
        
       System.out.println(a==b); //返回false
       System.out.println(a!=b);//返回true
        
}
}

1.3邏輯運算符

常見的邏輯運算符有:&,|,!,&&,||,^

1.3.1與,或,非

與:只有都為真時才為真

或:只要有一個為真則為真

非:取反

public class HelloWorld {
    public static void main(String[] args) {
        //長路與  無論第一個表達式的值是true或者false,第二個的值,都會被運算
        int i = 2;
        System.out.println( i== 1 & i++ ==2  ); //無論如何i++都會被執行,所以i的值變成了3
        System.out.println(i);
         
        //短路與 只要第一個表達式的值是false的,第二個表達式的值,就不需要進行運算了
        int j = 2;
        System.out.println( j== 1 && j++ ==2  );  //因為j==1返回false,所以右邊的j++就沒有執行了,所以j的值,還是2
        System.out.println(j);     
         
    }
}

1.3.2&&,||

&&:只要第一個表達式為假,則後面的不用計算,直接為假

||:只要第一個表達式為真,則為真,後面的不用計算

public class HelloWorld {
    public static void main(String[] args) {
        //長路或  無論第一個表達式的值是true或者false,第二個的值,都會被運算
        int i = 2;
        System.out.println( i== 1 | i++ ==2  ); //無論如何i++都會被執行,所以i的值變成了3
        System.out.println(i);
         
        //短路或 只要第一個表達式的值是true的,第二個表達式的值,就不需要進行運算了
        int j = 2;
        System.out.println( j== 2 || j++ ==2  );  //因為j==2返回true,所以右邊的j++就沒有執行了,所以j的值,還是2
        System.out.println(j);     
         
    }
}

1.3.3異或^

不同為真,相同為假。

public class HelloWorld {
    public static void main(String[] args) {
        boolean a = true;
        boolean b = false;
         
        System.out.println(a^b); //不同返回真
        System.out.println(a^!b); //相同返回假
 
    }
}

1.4位操作符

常見的位操作符有:&,|,!,^,<<,>>

1.4.1位或|

0|0=0,其他都為1

public class wiehuo {
    public static void main(String[] args) {
        int i=2,j=3;
        System.out.println(Integer.toBinaryString(i));//10
        System.out.println(Integer.toBinaryString(j));//11
        System.out.println(i|j);//3
        System.out.println(Integer.toBinaryString(i|j));//11
        
    }
}

Integer.toBinaryString():可以將一個數轉化為2進制

1.4.2位與&

1&1=1,其他為0

public class weiyu {
    public static void main(String[] args) {
        int i=5,j=6;
        System.out.println(Integer.toBinaryString(i));//101
        System.out.println(Integer.toBinaryString(j));//110
        System.out.println(Integer.toBinaryString(i&j));//100
        System.out.println(i&j);//4
        
    }
}

1.4.3異或^

相同為0,相異為1.

public class yihuo {
    public static void main(String[] args) {
        int i=5,j=6;
        System.out.println(Integer.toBinaryString(i));//101
        System.out.println(Integer.toBinaryString(j));//110
        System.out.println(Integer.toBinaryString(i^j));//011
        System.out.println(i^j);//3
        
    }
}

1.4.4左移,右移

左移:根據一個整數的二進制表達,將其每一位都向左移動,最右邊一位補0
右移:根據一個整數的二進制表達,將其每一位都向右移動

public class weiyi {
    public static void main(String[] args) {
        int i=5;
        System.out.println(Integer.toBinaryString(i));//101
        System.out.println(Integer.toBinaryString(i<<1));//左移一位1010
        System.out.println(Integer.toBinaryString(i>>1));//右移一位10
        
    }
}

1.5賦值操作符

1.6三元操作符

java基礎--操作符