⑴ java語言中,什麼叫表達式,請舉例如何表示一個表達式
Java表達式是變數、常量、運算符、方法調用的序列,它執行指定的計算並返回某個確定的值。
其中,運算符按操作數的數目:有一元運算符(++、--)、二元運算符(+、-、>等等)和三元運算符(?:),它們分別對應一到三個操作數。
表達式一般按運算符來分:
算術表達式(float x=8.3f、i++)、
關系表達式(3>7、3<7)、
布爾邏輯表達式((5>4)&&true、!false)、
位運算表達式(a=34^3)、
賦值表達式、
條件表達式(b=100>89?a=ture:a=false)
以及復合表達式。
還有一種叫「表達式語句」,就是在表達式後加上分號作為語句來使用。(int i=123;)
⑵ java三元表達式怎麼算
舉個簡單例子吧。
int a=1;int b=2;int c= a>b?1:0,結果c 為0。a>b 為條件,後面當條件為true時返回":"前面的結果,反之返回":"後面的結果。
⑶ JAVA條件表達式
暈死,int c=(a<b)?a:b; 的意思就是如果a<b的話c就等於a;不然c就等於b,這里a=10;b=1;所以a不小於b,c就等於1拉
⑷ java整數的表達式是什麼
1.整數,最多可以有兩位小數
^[-|+]?\\d*([.]\\d)?$
2.正整數
^\\d$
註:java中\需要換成\\
修改:
1、正數不能為零、最多有2有小數,如果第一位為0則下一位必須為小數點
^[+]?(([1-9]\\d*[.]?)|(0.))(\\d)?$
2、正數不能為0
^[\\d&&[^0]]$
⑸ java表達式
總行數能頁面的定義的行數整除,則返回總記錄數除以頁面行數取整,否則取整後加1
⑹ java表達式是什麼
Java是面向表達式的語言,Java中一個簡單表達式可以是下面任意一種:● 常量:7、false。● 單引號括起來的字元字面常量:'A'、'3'。● 雙引號括起來的字元串字面常量:"foo"、"Java"。● 任何正確聲明的變數名:myString、x。● 任何用Java二元運算符(本章稍後將詳細討論)連接起來的兩個上述類型的表達式:x+2。● 任何用Java一元運算符(本章稍後將詳細討論)修飾的單個上述類型的表達式:i++。● 任何用小括弧括起來的上述類型的表達式:(x+2)。以及另外一些與本書後面將要學到的對象有關的表達式類型。無論多麼復雜的表達式都可以由不同類型的簡單表達式和括弧嵌套組合而成,例如:((((4/x) + y) * 7) + z)。2.9.1 算術運算符 Java語言提供了許多基本的算術運算符,如表2-1所示。表2-1 Java算術運算符運算符描 述+加法-減法*乘法/除法%求余(%左邊的操作數除以右邊的
操作數所得到的余數,例如10%3=1)+和-運算符也可作為一元運算符用於表示正負數:-3.7、+42。除了簡單賦值運算符=,還有許多特定的復合賦值運算符,這些運算符將變數賦值和算術操作合並在一起,如表2-2所示。表2-2 Java復合賦值運算符運算符描 述+=a+=b等價於a=a+b-=a-=b等價於a=a-b*=a*=b等價於a=a*b/=a/=b等價於a=a/b%=a%=b等價於a=a%b最後要介紹的兩個算術運算符是一元遞增運算符(++)和一元遞減運算符(--),用於將整數變數的值加1或減1,或者將浮點數變數的值加1.0或減1.0。稱它們為一元運算符是因為它們用於單個變數,而前面討論的二元運算符則連接兩個表達式的值。一元遞增運算符和一元遞減運算符也可用於將字元變數在Unicode序列中向前或向後移動一個字元位置。例如,在下面的代碼片段中,字元變數c的值從'e'遞增為'f':遞增和遞減運算符可以以前綴或者後綴方式使用。如果運算符放在操作數之前(前綴模式),變數的遞增或遞減操作將在更新後的變數值被用於任何由它構成的賦值操作之前執行。例如,考慮下面的使用前綴遞增運算符的代碼片段,假設a和b在程序前面已經聲明為int變數:上述代碼執行後,變數a的值是2,變數b的值也是2。這是因為在第二行中變數a的遞增(從1到2)發生在它的值賦給b之前。因此這行代碼在邏輯上等價於下面兩行代碼: 另一方面,如果運算符放在操作數之後(後綴模式),遞增或遞減操作發生在原來的變數值被用於任何由它構成的賦值操作之後。看一下以後綴方式使用遞增運算符的相同代碼片段:上述代碼執行後,變數b的值是1,而變數a的值是2。這是因為在第二行中變數a的遞增(從1到2)發生在它的值賦給b之後。因此這行代碼在邏輯上等價於下面兩行代碼:下面是一個稍微復雜一點例子,請閱讀附加的注釋以確保你能夠明白x最終是如何被賦值為10的:稍後將會看到,遞增和遞減運算符通常和循環一起使用。2.9.2 關系和邏輯運算符邏輯表達式以指定的方式比較兩個(簡單或者復雜)表達式exp1和exp2,決議出一個boolean值true或者false。 Java提供了表2-3所示的關系運算符來創建邏輯表達式。表2-3 Java關系運算符運算符描 述exp1==exp2如果exp1等於exp2,值為true(注意使用雙等號測試相等性)exp1>exp2如果exp1大於exp2,值為trueexp1>=exp2如果exp1大於等於exp2,值為trueexp1<exp2如果exp1小於exp2,值為trueexp1<=exp2如果exp1小於等於exp2,值為trueexp1!=exp2如果exp1不等於exp2,值為true!exp如果exp為false值為true,如果exp為true值為false除了關系運算符,Java還提供了用於組合/修飾邏輯表達式的邏輯運算符。表2-4列出了最常用的邏輯運算符。表2-4 Java邏輯運算符運算符描 述exp1&&exp2邏輯「與」,僅當exp1和exp2都為true時復合表達式值為trueexp1||exp2邏輯「或」,exp1或exp2值為true時復合表達式值為true!exp邏輯「非」,將邏輯表達式的值從true切換到false,反之亦然下面這個例子用邏輯「與」運算符來編程實現邏輯表達式「如果x大於2.0且y不等於4.0」:邏輯表達式常用於流程式控制制結構,本章稍後將進行討論。2.9.3 表達式求值和運算符優先順序如同本章前面提到的那樣,任何復雜的表達式都可以用分層嵌套的小括弧構成,例如(((8 * (y + z)) + y) x)。編譯器通常按照從內到外,從左到右的順序對這樣的表達式求值。假設x、y、z按照下面的方式聲明並初始化:下面的賦值語句右邊的表達式:將像下面這樣逐步求值:沒有小括弧時,根據運算符用於表達式求值的順序,某些運算符具有高於其他運算符的優先順序。例如,乘除法先於加減法執行。通過使用小括弧可以強制改變運算符的優先順序,括弧內的運算符比括弧外的先執行。考慮下面的代碼片段:代碼的第一行沒有使用括弧,乘法操作比加法操作先執行,因此整個表達式的值為2+12=14,就像我們將表達式明確地寫成2+(3*4)一樣,當然這樣做沒有必要。 在代碼的第二行,括弧被明確地放在操作2+3兩邊,因此加法操作將首先執行,然後求和結果乘以4作為整個表達式的值,即5*4=20。回到前面的例子注意到>和!=運算符優先順序高於&&運算符,因此可以去掉嵌套的括弧而變成下面這樣:然而,額外的括弧並不會對代碼造成傷害,事實上它可以使表達式的目的更加清楚。2.9.4 表達式類型表達式類型是表達式最終求值結果的Java類型。例如給定下面的代碼片段:表達式(x > 2.0) && (y != 4.0)求值結果為true,因此表達式(x > 2.0) && (y != 4.0)稱為boolean型表達式。在下面的代碼片段中:表達式((8 * (y + z)) + y) * x求值結果為42,因此表達式((8 * (y + z)) + y) * x稱為整型表達式。
⑺ Java語言中共有幾種表達式
正則表達式
問號表達式
邏輯表達式
語言表達式
逗號表達式
答案補充
表達式分為幾種,每種表達式的弄能都不一樣
什麼叫表達式,這個問題不準確
例如 正則表達式:
提供更強大的字元串處理能力,測試字元串內的模式,例如,可以測試輸入字元串,以查看字元串內是否出現電話號碼模式或身份證號碼模式。即數據驗證替換文本可以使用正則表達式來識別文檔中的特定文本,完全刪除該文本或者用其他文本替換它。
基於模式匹配從字元串中提取子字元串可以查找文檔內或輸入域內特定的文本。
⑻ JAVA中表達式是怎麼定義的
什麼表達式
!、A == B,判斷2個變數是否相等
2、Str1.equals(str2) 判斷2個字元串是否內容相同
????
⑼ JAVA表達式 a >>> 2什麼意思
你看下這篇文章就清楚了
首先要明白一點,這裡面所有的操作都是針對存儲在計算機中中二進制的操作,那麼就要知道,正數在計算機中是用二進製表示的,負數在計算機中使用補碼表示的。
左移位:<<,有符號的移位操作
左移操作時將運算數的二進制碼整體左移指定位數,左移之後的空位用0補充
右移位:>>,有符號的移位操作
右移操作是將運算數的二進制碼整體右移指定位數,右移之後的空位用符號位補充,如果是正數用0補充,負數用1補充。
例子:
public static void main(String[] args)
{
System.out.println(3<<2);//3左移2位
System.out.println(-3<<2);//-3左移2位
System.out.println(6>>2);//6右移2位
System.out.println(-6>>2);//-6右移2位
}
輸出結果
12
-12
1
-2
下面解釋一下:
00000000 00000000 00000000 00000011 +3在計算機中表示
00000000 00000000 00000000 0000001100 左移2位,補0,結果為12
----------------------------------------------------------------------------------------------
00000000 00000000 00000000 00000011 +3在計算機中表示
11111111 11111111 11111111 11111100
11111111 11111111 11111111 11111101 -3在計算機中表示
11111111 11111111 11111111 1111110100 左移2位,補0,結果為負數,就是補碼了,求原碼
10000000 00000000 00000000 00001011
10000000 00000000 00000000 00001100 結果-12
----------------------------------------------------------------------------------------------
這也說明了一個問題:在計算機中,以1開頭的就是補碼的形式,是負數。
00000000 00000000 00000000 00000110 +6在計算機中表示方法
0000000000 00000000 00000000 00000110 右移兩位,正數補0,結果為1
----------------------------------------------------------------------------------------------
00000000 00000000 00000000 00000110 +6在計算機中表示方法
11111111 11111111 11111111 11111001
11111111 11111111 11111111 11111010 -6在計算機中的表示
1111111111 11111111 11111111 11111010 右移兩位,結果為負數
1000000000 00000000 00000000 000001
1000000000 00000000 00000000 000010 結果為-2
這個地方很容易弄混,多想幾次就會慢慢理解了。
上面解釋了帶符號的移位操作,下面解釋一下不帶符號的移位操作
無符號的移位只有右移,沒有左移使用「>>>」進行移位,都補充0
例如:
public static void main(String[] args)
{
System.out.println(6>>>2);
System.out.println(-6>>>2);
}
結果:
1
1073741822
分析:
00000000 00000000 00000000 00000110 +6在計算機中表示方法
0000000000 00000000 00000000 00000110 右移兩位,正數補0,結果為1
-----------------------------------------------------------------------------------------------------
00000000 00000000 00000000 00000110 +6在計算機中表示方法
11111111 11111111 11111111 11111001
11111111 11111111 11111111 11111010 -6在計算機中的表示
0011111111 11111111 11111111 11111010 右移兩位,補充0,結果為1073741822
以下來自:http://jefflee.javaeye.com/blog/203863
可以參考
移位操作要注意的問題是高(低)位是補0還是補1和對char, byte, short型的操作:
(1)<< : (left-shift), 最低位補0
(2)>> : (signed right-shift), 右移過程使用符號位擴展(sign extension),即如果符號為為1則高位補1, 是0則補0,也就是邏輯右移
(3)>>> : (unsigned right-shit),右移過程使用零擴展(zero extension),即最高位一律補0,也就是算術右移
(4)移位操作的數據類型可以是byte, char, short, int, long型,但是對byte, char, short進行操作時會先把它們變成一個int型,最後得到一個int型的結果,對long型操作時得到一個long型結果,不可以對boolean型進行操作。
(5)移位操作符可以和=合並起來,即 <<= 、 >>= 和 >>>=。例如 a >>= 2; 表示將a右移兩位後的值重新賦給a。當時在使用這三個操作符對 byte, char, short型數據進行操作時要注意,例如有一下代碼片段: