2-2.2 運算元與運算子
在前面的一些範例中,我們常利用數學上的+、-、*、/等符號,來進行一些簡單的運算。事實上,這些符號在程式語言中有其特定的名稱,就是所謂的運算子(operator)。當然,只有運算子的話,是沒辦法處理事情的。這時候,就需要能讓運算子進行處理的數值,就是運算元(operand)。 圖2-11表示運算子與運算元的關係。
藉由運算子和運算元的協同合作,我們就可以進行許多運算。像是計算相加(x+y)、相減(x-y)等。這類的運算關係,是由一個運算子連接兩個運算元而成,這樣的運算子就稱為二元運算子(binary operator)。除此之外,java還提供只有一個運算元的一元運算子(unary operator),以及可以同時處理三個運算元的三元運算子(ternary operator)。
[補充] java沒有提供四元或以上的運算子。
底下的幾個表格,列出一些常見的運算子和用法。
表2-1 加/減運算子(additive operator)
表2-2 乘/除運算子(multiplicative operator)
表2-3 一元運算子(unary operator)
從表2-2和表2-3中得知,符號"+"和"-"同時具有一元運算子和二元運算子的身分。因此,必須依據他們出現的位置、或是前面是否還有運算元存在,來判定此時所表示的是一元或二元運算子。
Chap2_2_2.java
執行結果
請輸入一整數:5
------------------------
5的值為5。
5的相反值為-5。
請輸入一整數:-5
------------------------
-5的值為-5。
-5的相反值為5。
程式說明:
程式中的述句int b = -a; ,其中的運算子符號"-",前面沒有其它運算子存在,代表一元運算子。因此,該述句是將a的相反數指定給b。
基本資料型態
在之前的程式,我們都是以整數型態(int)為主。java語言本身提供了豐富的資料型態,使用者如果覺得不夠用的話,還可以自行定義專屬的資料型態。java 語言所提供的標準型態稱為基本資料型態(primitive type),除了常用的整數型態之外,還有浮點數型態(其它的資料型態絴細內容將在第5章討論)。
整數型態:
用來表示整數,代表型態如下:
浮點數型態:
用來表示實數,代表型態如下:
思考題 :
Err2_2_2.java
錯誤訊息
在前面的一些範例中,我們常利用數學上的+、-、*、/等符號,來進行一些簡單的運算。事實上,這些符號在程式語言中有其特定的名稱,就是所謂的運算子(operator)。當然,只有運算子的話,是沒辦法處理事情的。這時候,就需要能讓運算子進行處理的數值,就是運算元(operand)。 圖2-11表示運算子與運算元的關係。
圖2-12
藉由運算子和運算元的協同合作,我們就可以進行許多運算。像是計算相加(x+y)、相減(x-y)等。這類的運算關係,是由一個運算子連接兩個運算元而成,這樣的運算子就稱為二元運算子(binary operator)。除此之外,java還提供只有一個運算元的一元運算子(unary operator),以及可以同時處理三個運算元的三元運算子(ternary operator)。
[補充] java沒有提供四元或以上的運算子。
底下的幾個表格,列出一些常見的運算子和用法。
表2-1 加/減運算子(additive operator)
x + y | 計算 x 加上 y 的結果。 |
x - y | 計算 x 減掉 y 的結果。 |
表2-2 乘/除運算子(multiplicative operator)
x * y | 計算x 乘上 y 的結果。 |
x / y | 計算x 除以 y 的商數。 |
x % y | 計算x 除以 y 的餘數。 |
表2-3 一元運算子(unary operator)
+ x | x 的值(通常可省略)。 |
- x | 取x 的負數。 |
從表2-2和表2-3中得知,符號"+"和"-"同時具有一元運算子和二元運算子的身分。因此,必須依據他們出現的位置、或是前面是否還有運算元存在,來判定此時所表示的是一元或二元運算子。
Chap2_2_2.java
import java.util.Scanner; public class Chap2_2_2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("請輸入一整數:"); int a = scanner.nextInt(); // 將輸入的數字給a int b = -a; // 以變數a的相反值將變數b初始化 int c = a; System.out.println("------------------------"); System.out.println(a + "的值為" + c + "。"); System.out.println(a + "的相反值為" + b + "。"); }} |
執行結果
請輸入一整數:5
------------------------
5的值為5。
5的相反值為-5。
請輸入一整數:-5
------------------------
-5的值為-5。
-5的相反值為5。
程式說明:
程式中的述句int b = -a; ,其中的運算子符號"-",前面沒有其它運算子存在,代表一元運算子。因此,該述句是將a的相反數指定給b。
基本資料型態
在之前的程式,我們都是以整數型態(int)為主。java語言本身提供了豐富的資料型態,使用者如果覺得不夠用的話,還可以自行定義專屬的資料型態。java 語言所提供的標準型態稱為基本資料型態(primitive type),除了常用的整數型態之外,還有浮點數型態(其它的資料型態絴細內容將在第5章討論)。
用來表示整數,代表型態如下:
記憶體配置空間 | 數值範圍 | |
byte | 1 byte | -128~127 |
short | 2 byte | -32,768~32,767 |
int | 4 byte | -2,147,483,648~2,147,483,647 |
long | 8 byte | -9,223,372,036,854,775,808~9,223,372,036,854,775,807 |
每一種型態所能表示的數值範圍都不同,使用者可以依據需求,選取合適的的型態。
用來表示實數,代表型態如下:
記憶體配置空間 | 數值範圍 | |
float | 4 byte | +-3.40282347E+38~+-1.40239846E-45 |
double | 8 byte | +-1.79769313486231507E+378~ +-4.94065645841246544E-324 |
思考題 :
Err2_2_2.java
class Err2_2_2{ public static void main(String[] args){ byte n = 300; System.out.println(n); } } |
錯誤訊息
D:\chap2\err\Err2_2_2.java:3: possible loss of precision found : int required: byte byte n = 300; ^ 1 error |
0 意見:
張貼留言