更多免費內容,點擊瞭解:https://how2j.cn/k/operator/operator-arithmetic/265.htmlhtml
目錄java
操做符系列教材 (一)- Java的算數操做符ide
示例 1 : 基本算數操做符學習
示例 2 : 任意運算單元的長度超過int3d
示例 3 : 任意運算單元的長度小於intcode
示例 4 : %取模htm
示例 5 : 自增 自減blog
示例 6 : 自增 自減操做符置前以及置後的區別字符串
操做符系列教材 (二)- Java的關係操做符get
示例 1 : 關係操做符
操做符系列教材 (三)- Java的邏輯運算符
示例 1 : 長路與 和 短路與
示例 2 : 長路或 和 短路或
示例 3 : 取反
示例 4 : 異或^
操做符系列教材 (四)- Java的位操做符
示例 1 : 一個整數的二進制表達
示例 2 : 位或
示例 3 : 位與
示例 4 : 異或
示例 5 : 取非
示例 6 : 左移 右移
示例 7: 帶符號右移與無符號右移
操做符系列教材 (五)- Java的賦值操做符
示例 1 : 賦值操做
示例 2 : 對自己進行運算,並賦值
操做符系列教材 (六)- Java的三元操做符
示例 1 : 三元操做符
操做符系列教材 (七)- 使用Scanner讀取整數
步驟 1 : 使用Scanner讀取整數
步驟 2 : 使用Scanner讀取浮點數
步驟 3 : 使用Scanner讀取字符串
步驟 4 : 讀取了整數後,接着讀取字符串
操做符系列教材 (一)- Java的算數操做符
算數操做符
基本的有:
自增 自減
示例 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;
}
}
|
示例 2 : 任意運算單元的長度超過int
若是有任何運算單元的長度超過int,那麼運算結果就按照最長的長度計算
好比
int a = 5;
long b = 6;
a+b -> 結果類型是long
public class HelloWorld {
public static void main(String[] args) {
int a = 5 ;
long b = 6 ;
int c = ( int ) (a+b); //a+b的運算結果是long型,因此要進行強制轉換
long d = a+b;
}
}
|
示例 3 : 任意運算單元的長度小於int
若是任何運算單元的長度都不超過int,那麼運算結果就按照int來計算
byte a = 1;
byte b= 2;
a+b -> int 類型
public class HelloWorld {
public static void main(String[] args) {
byte a = 1 ;
byte b= 2 ;
byte c = ( byte ) (a+b); //雖然a b都是byte類型,可是運算結果是int類型,須要進行強制轉換
int d = a+b;
}
}
|
示例 4 : %取模
% 取餘數,又叫取模
5除以2,餘1
public class HelloWorld {
public static void main(String[] args) {
int i = 5 ;
int j = 2 ;
System.out.println(i%j); //輸出爲1
}
}
|
示例 5 : 自增 自減
++
--
在原來的基礎上增長1或者減小1
public class HelloWorld {
public static void main(String[] args) {
int i = 5 ;
i++;
System.out.println(i); //輸出爲6
}
}
|
示例 6 : 自增 自減操做符置前以及置後的區別
以++爲例
int i = 5;
i++; 先取值,再運算
++i; 先運算,再取值
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
}
}
|
操做符系列教材 (二)- Java的關係操做符
關係操做符:比較兩個變量之間的關係
> 大於
>= 大於或等於
< 小於
<= 小於或等於
== 是否相等
!= 是否不等
示例 1 : 關係操做符
> 大於
>= 大於或等於
< 小於
<= 小於或等於
== 是否相等
!= 是否不等
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
}
}
|
操做符系列教材 (三)- Java的邏輯運算符
邏輯運算符
示例 1 : 長路與 和 短路與
不管長路與仍是短路與
兩邊的運算單元都是布爾值
都爲真時,才爲真
任意爲假,就爲假
區別
長路與 兩側,都會被運算
短路與 只要第一個是false,第二個就不進行運算了
![長路與 和 短路與](http://static.javashuo.com/static/loading.gif)
![長路與 和 短路與](http://static.javashuo.com/static/loading.gif)
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);
}
}
|
示例 2 : 長路或 和 短路或
不管長路或仍是短路或
兩邊的運算單元都是布爾值
都爲假時,才爲假
任意爲真,就爲真
區別
長路或 兩側都會被運算
短路或 只要第一個是true的,第二個就不進行運算了
![長路或 和 短路或](http://static.javashuo.com/static/loading.gif)
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);
}
}
|
示例 3 : 取反
取反!
真變爲假
假變爲真
public class HelloWorld {
public static void main(String[] args) {
boolean b = true ;
System.out.println(b); //輸出true
System.out.println(!b); //輸出false
}
}
|
示例 4 : 異或^
異或^
不一樣,返回真
相同,返回假
![異或^](http://static.javashuo.com/static/loading.gif)
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); //相同返回假
}
}
|
操做符系列教材 (四)- Java的位操做符
位操做符在實際工做中用的並不常見,可是同窗們老是很喜歡糾結這些位操做。
因此本章節會給出每個操做符的操做實例幫助你們理解其具體含義。
最後說,若是確實感興趣,就看看,我的建議跳過這個章節。 真正工做用到了,再來看。
示例 1 : 一個整數的二進制表達
位操做都是對二進制而言的,可是咱們日常使用的都是十進制好比5。
而5的二進制是101。
因此在開始學習以前,須要掌握一個整數的二進制表達是多少。
經過Integer.toBinaryString() 方法,將一個十進制整數轉換爲一個二進制字符串
![一個整數的二進制表達](http://static.javashuo.com/static/loading.gif)
public class HelloWorld {
public static void main(String[] args) {
int i = 5 ;
String b = (Integer.toBinaryString(i)); // 5的二進制的表達101
System.out.println(i+ " 的二進制表達是: " +b);
}
}
|
示例 2 : 位或
5的二進制是101
6的二進制是110
因此 5|6 對每一位進行或運算,獲得 111->7
public class HelloWorld {
public static void main(String[] args) {
int i = 5 ;
int j = 6 ;
System.out.println(Integer.toBinaryString(i)); //5的二進制是101
System.out.println(Integer.toBinaryString(j)); //6的二進制是110
System.out.println(i|j); //因此 5|6 對每一位進行或運算,獲得 111->7
}
}
|
示例 3 : 位與
5的二進制是101
6的二進制是110
因此 5&6 對每一位進行與運算,獲得 100->4
public class HelloWorld {
public static void main(String[] args) {
int i = 5 ;
int j = 6 ;
System.out.println(Integer.toBinaryString(i)); //5的二進制是101
System.out.println(Integer.toBinaryString(j)); //6的二進制是110
System.out.println(i&j); //因此 5&6 對每一位進行與運算,獲得 100->4
}
}
|
示例 4 : 異或
5的二進制是101
6的二進制是110
因此 5^6 對每一位進行異或運算,獲得 011->3
一些特別狀況:
任何數和本身進行異或 都等於 0
任何數和0 進行異或 都等於本身
public class HelloWorld {
public static void main(String[] args) {
int i = 5 ;
int j = 6 ;
System.out.println(Integer.toBinaryString(i)); //5的二進制是 101
System.out.println(Integer.toBinaryString(j)); //6的二進制是110
System.out.println(i^j); //因此 5^6 對每一位進行或運算,獲得 011->3
System.out.println(i^ 0 );
System.out.println(i^i);
}
}
|
示例 5 : 取非
5 的二進制是 00000101
因此取反即爲 11111010
這個二進制換算成十進制即爲-6
public class HelloWorld {
public static void main(String[] args) {
byte i = 5 ;
System.out.println(Integer.toBinaryString(i)); //5的二進制是00000101,因此取非即爲11111010,即爲-6
System.out.println(~i);
}
}
|
示例 6 : 左移 右移
左移:根據一個整數的二進制表達,將其每一位都向左移動,最右邊一位補0
右移:根據一個整數的二進制表達,將其每一位都向右移動
public class HelloWorld {
public static void main(String[] args) {
byte i = 6 ;
//6的二進制是110
System.out.println(Integer.toBinaryString(i));
//6向左移1位後,變成1100,對應的10進制是12
System.out.println(i<< 1 );
//6向右移1位後,變成11,對應的10進制是3
System.out.println(i>> 1 );
}
}
|
示例 7: 帶符號右移與無符號右移
帶符號右移 >>
對於正數, 帶符號右移 >> 會把全部的位右移,並在最前面補0
對於負數, 帶符號右移 >> 會把全部的位右移,並在最前面補1
無符號右移>>>
若是是一個負數,那麼對應的二進制的第一位是1
無符號右移>>>會把第一位的1也向右移動,致使移動後,第一位變成0
這樣就會使得負數在無符號右移後,獲得一個正數
簡單的說:
帶符號右移 >> 移動後正的仍是正的,負的仍是負的,符號不變
無符號右移>>>移動後,變正的了
public class HelloWorld {
public static void main(String[] args) {
int i =- 10 ;
//-10的二進制是11111111111111111111111111110110
//第一位是1,即符號位,表明這是一個負數
System.out.println(Integer.toBinaryString(i));
//對於正數, 帶符號右移 >> 會把全部的位右移,並在最前面補0
//對於負數, 帶符號右移 >> 會把全部的位右移,並在最前面補1
//-10帶符號右移1位,移動後前面補齊1
//獲得11111111111111111111111111111011
//由於第一位是1,因此依然是一個負數,對應的十進制是-5
int j = i>> 1 ;
System.out.println(Integer.toBinaryString(j));
System.out.println(j);
//-10無符號向右移1位,符號位也會向右移,第一位就變成了0
//獲得01111111111111111111111111111011,對應的十進制是2147483643
int k = i>>> 1 ;
System.out.println(Integer.toBinaryString(k));
System.out.println(k);
}
}
|
操做符系列教材 (五)- Java的賦值操做符
賦值操做
示例 1 : 賦值操做
賦值操做的操做順序是從右到左
int i = 5+5;
首先進行5+5的運算,獲得結果10,而後把10這個值,賦給i
public class HelloWorld {
public static void main(String[] args) {
int i = 5 + 5 ;
}
}
|
示例 2 : 對自己進行運算,並賦值
+=即自加
i+=2;
等同於
i=i+2;
其餘的 -= , *= , /= , %= , &= , |= , ^= , >>= , >>>= 都是相似,不作贅述
public class HelloWorld {
public static void main(String[] args) {
int i = 3 ;
i+= 2 ;
System.out.println(i);
int j= 3 ;
j=j+ 2 ;
System.out.println(j);
}
}
|
操做符系列教材 (六)- Java的三元操做符
三元操做符
?:
示例 1 : 三元操做符
表達式?值1:值2
若是表達式爲真 返回值1
若是表達式爲假 返回值2
關於if語句的詳解講解在後面章節
public class HelloWorld {
public static void main(String[] args) {
int i = 5 ;
int j = 6 ;
int k = i < j ? 99 : 88 ;
// 至關於
if (i < j) {
k = 99 ;
} else {
k = 88 ;
}
System.out.println(k);
}
}
|
操做符系列教材 (七)- 使用Scanner讀取整數
截至目前爲止,學習了使用System.out.println("") 向控制檯輸出數據。
在接下來的練習中,須要用到從控制檯輸入數據,因此須要用到Scanner類
步驟 1 : 使用Scanner讀取整數
注意: 使用Scanner類,須要在最前面加上
import java.util.Scanner;
|
表示導入這個類,纔可以正常使用
![使用Scanner讀取整數](http://static.javashuo.com/static/loading.gif)
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int a = s.nextInt();
System.out.println( "第一個整數:" +a);
int b = s.nextInt();
System.out.println( "第二個整數:" +b);
}
}
|
步驟 2 : 使用Scanner讀取浮點數
![使用Scanner讀取浮點數](http://static.javashuo.com/static/loading.gif)
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
float a = s.nextFloat();
System.out.println( "讀取的浮點數的值是:" +a);
}
}
|
步驟 3 : 使用Scanner讀取字符串
![使用Scanner讀取字符串](http://static.javashuo.com/static/loading.gif)
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String a = s.nextLine();
System.out.println( "讀取的字符串是:" +a);
}
}
|
步驟 4 : 讀取了整數後,接着讀取字符串
須要注意的是,若是在經過nextInt()讀取了整數後,再接着讀取字符串,讀出來的是回車換行:"\r\n",由於nextInt僅僅讀取數字信息,而不會讀取回車換行"\r\n".
因此,若是在業務上須要讀取了整數後,接着讀取字符串,那麼就應該連續執行兩次nextLine(),第一次是取走回車換行,第二次纔是讀取真正的字符串
![讀取了整數後,接着讀取字符串](http://static.javashuo.com/static/loading.gif)
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int i = s.nextInt();
System.out.println( "讀取的整數是" + i);
String rn = s.nextLine();
String a = s.nextLine();
System.out.println( "讀取的字符串是:" +a);
}
}
|
更多內容,點擊瞭解: https://how2j.cn/k/operator/operator-scanner/658.html