iT邦幫忙

2022 iThome 鐵人賽

DAY 7
0
自我挑戰組

30天Java由淺入深系列 第 7

Day 7 : 運算子與數學計算

  • 分享至 

  • xImage
  •  

#介紹

本章要來分享Java在執行數學運算時,實用的5種數學函式。不過在這之前會優先講解一個承上啟下的主題 -- 運算子。不論是應用於數學運算中,還是之後介紹條件判斷的邏輯運算子,是用符號來告訴編譯器將要執行的內容,是一個非常值得知道的內容!!!


#運算子

運算子的種類主要分為下列5種 :

  • 算數運算符 (Arithmetic Operators)
    https://ithelp.ithome.com.tw/upload/images/20220922/20151216Y3A5UGMYUF.png

  • 指派運算子 (Assignment operators)
    https://ithelp.ithome.com.tw/upload/images/20220922/20151216FmpOO8uadc.png

  • 比較運算子 (Comparison operators)
    https://ithelp.ithome.com.tw/upload/images/20220922/20151216t1Sc3Rt3QF.png

  • 邏輯運算子 (Logical operators)
    https://ithelp.ithome.com.tw/upload/images/20220922/20151216fxeNHn07Pf.png

  • 位元運算子 (Bitwise operators)
    https://ithelp.ithome.com.tw/upload/images/20220922/201512164cWZO1BpRa.png


#數學計算

以下介紹數學函示的應用,並會配合上述運算子內容提供程式範例 :

  1. Math.max( )
    求兩數間的最大值,括號中間放入兩數並用逗號隔開。
  2. Math.min( )
    求兩數間的最小值,括號中間放入兩數並用逗號隔開。
public class Main(){
	public static void main(String[] agrs){
		int x = 10, y = 11;
		int max,min;
		max = Math.max(x,y);         //max = 11 
		min = Math.min(x,y);         //min = 10

		max -= 1;           //max = 10
		min++;              //min = 11
		if(max == min) System.out.println("Hello!");
			else if(max > min) System.out.println("Hola!!");
				else System.out.println("你好!!!")        //Outputs : 你好!!!
	} 
}
  1. Math.sqrt( )
    求某數的平方根,內容填入一個數。
  2. Math.abs( )
    轉換一負數變成正數,絕對值的概念,內容填入一負數。
public class Main(){
	public static void main(String[] args){
		int root;
		root = Math.sqrt(100);       //Outputs : 10
		root /= -10;
		Syestem.out.println(Math.abs(root));    //Outputs : 1
	}
}
  1. Math.random( )
    隨機跑出一個介於 0.0 (包含) 和 1.0 (不包含)的小數。
    → 補充 : 因為我們在執行程式時可能會需要用到一個或一組介於0~100的數字,但此函式僅能跑出一個很小的小數,於是乎我們可以將其 * 101(最多到100的數),這樣出來的結果就會是一個十位數了!
public class Main(){
	public static void main(String[] args){
		int random;
		random = (int)(Math.random() * 101 );
		System.out.println(random);    //Outputs : random number between 0~100
	}
}
  • 程式解析 : 我們可以觀察到第4行有一個特殊用法(int)。這是為了後面隨機變數產生的是一個符點小數,為了讓其不帶小數,我們使用「強制轉型」的方法。強制轉型牽涉到變數間類型轉換,以下提供一條變數間的強弱排序(Casting sequence)。
    由小到大,小至大需強制轉型,大至小則否 :

    byte-> short-> char-> int-> long-> float-> double

以上內容若有錯誤,煩請不吝嗇指教,謝謝您!!!/images/emoticon/emoticon35.gif


上一篇
Day 6 : 變數( 2 )
下一篇
Day 8 : 條件式判斷
系列文
30天Java由淺入深30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言