2.4.5 運算子
2.4.5.1 常規算術運算子
? ? [作者:Surpassme]常見的算術運算子主要如下所示:
| 運算子 | 說明 | 示例 |
|---|---|---|
| + | 相加 | 1+2=3 |
| - | 相減 | 1-2=-1 |
| * | 相乘 | 2*2=4 |
| / | 相除 | 3/2=1.5 |
| % | 求余 | 3%2=1 |
| ** | 求冪 | 3**2=9 |
2.4.5.2 賦值算術運算子
? ? [作者:Surpassme]常見的賦值算術運算子主要如下所示:
| 運算子 | 說明 |
|---|---|
| += | 相加并賦值 |
| -= | 相減并賦值 |
| *= | 相乘并賦值 |
| /= | 相除并賦值 |
| %= | 求余并賦值 |
| **= | 求冪并賦值 |
2.4.5.3 關系運算子
? ? [作者:Surpassme]常見的關系運算子主要如下所示:
| 運算子 | 說明 |
|---|---|
| == | 等于 |
| != | 不等于 |
| < | 小于 |
| <= | 小于等于 |
| > | 大于 |
| >= | 大于等于 |
| === | 絕對等于 |
| !== | 絕對不等于 |
2.4.5.4 邏輯運算子
? ? [作者:Surpassme]常見的邏輯運算子主要如下所示:
| 運算子 | 說明 |
|---|---|
| && | 邏輯與 |
| | | | 邏輯或 |
| ! | 邏輯非 |
2.4.5.5 三元運算子
? ? [作者:Surpassme]Groovy中的三元運算子,其基本語法如下所示:
判斷條件?條件成立的結果:條件不成立的結果
該運算子功能等同于if-else
? ? 示例結果如下所示:
def result=30>28?true:false
println "result is ${result}" // true
2.4.5.6 自增運算子
? ? [作者:Surpassme]常見的自增運算子主要如下所示:
| 運算子 | 說明 |
|---|---|
| ++ | 自增 |
| -- | 自減 |
2.4.6 控制陳述句
2.4.6.1 if-else
? ? [作者:Surpassme]Groovy中的if-else基本語法結構如下所示:
if (運算式){
// 執行陳述句
} else if (運算式) {
// 執行陳述句
} else {
// 執行陳述句
}
- 示例一:
def env="test"
if(env == "test"){
println "current env is ${env}"
} else if(env == "dev"){
println "current env is ${env}"
} else if(env == "release"){
println "current env is ${env}"
} else {
println "unknown env"
}
- 示例二:
def personInfo=[:]
if (personInfo.isEmpty()){
println "personInfo is empty:${personInfo} "
} else {
println "personInfo value :${personInfo} "
}
2.4.6.2 switch-case
? ? [作者:Surpassme]Groovy中的switch-case基本語法結構如下所示:
- 語法一:常規用法
switch (變數值){
case 條件1:
// 執行陳述句或運算式
break
case 條件2:
// 執行陳述句或運算式
break
case 條件3:
// 執行陳述句或運算式
break
case [條件3,條件4,條件5]:
// 執行陳述句或運算式
break
default:
// 執行陳述句或運算式
}
- 語法二:支持switch-case 運算式
def variable = swithc (變數值){
case 條件1 -> "結果1"
case 條件2 -> "結果2"
case 條件3 -> "結果3"
case 條件4 -> "結果4"
}
- 示例一:
def env="test"
switch (env){
case "test":
println "current env is ${env}"
break
case "dev":
println "current env is ${env}"
break
case "release":
println "current env is ${env}"
break
default:
println "unknown env"
}
- 示例二:
def env="dev"
switch (env){
case ["test","dev"]:
println "current env is test or dev ,not release yet"
break
case "release":
println "current env is ${env}"
break
default:
println "unknown env"
} println "unknown env"
}
- 示例三:
def env="test"
def currentEnv=switch (env){
case "test" -> "current env is test"
case "dev" -> "current env is dev"
case "release" -> "current env is release"
}
println currentEnv
2.4.6.3 回圈陳述句
2.4.6.3.1 for陳述句
- 1.經典for陳述句
? ? [作者:Surpassme]經典for陳述句,其語法結構如下所示:
for ( init; condition; increment )
{
// statement
}
- 2.for-in
? ? [作者:Surpassme]for-in其語法結構如下所示:
for ( item in Object)
{
// statement
}
2.4.6.3.2 while陳述句
- 1.while
? ? [作者:Surpassme]while其語法結構如下所示:
while(condition){
// statement
}
- 2.do-while
? ? [作者:Surpassme]do-while其語法結構如下所示:
do {
// statement
} while(condition)
2.4.6.3.3 示例
? ? 示例如下所示:
- for示例
def hello="Hello,Surpass"
def helloSplit=hello.split(",")
for(def i=0; i < helloSplit.length;i++) {
println helloSplit[i]
}
- for-in示例
def personInfoMap=[name:"Surpass",age:28,loc:"Shanghai"]
for (item in personInfoMap){
println "Key is : ${item.key},value is :${item.value}"
}
def personInfoList=["Surpass",28,"Shanghai"]
for (item in personInfoList){
println "current itme is ${item}"
}
- while/do-while示例
def (endNumberA,endNumberB,sumA,sumB)=[100,100,0,0]
while (endNumberA > 0){
sumA+=endNumberA
endNumberA--
}
do{
sumB+=endNumberB
endNumberB--
}while (endNumberB > 0)
2.4.7 函式
2.4.7.1 基本定義
? ? [作者:Surpassme]Groovy中的函式基本語法如下所示:
def functionName(parasA,...,parasN=defaulValue){
// 執行陳述句
return parasA
}
? ? 簡要說明如下所示:
- 函式定義使用關鍵字
def - 函式的引數可以存在
默認值,如果沒有值傳給引數,則使用默認值、
如果引數即存在非默認引數和默認引數,則默認引數必須位于引數串列的末尾進行定義
- 函式的回傳值,可以使用
return回傳,如果沒有return陳述句,則默認使用最后一個運算式的值做為回傳值
函式也可以一次性回傳多個值,可以使用多變數賦值進行接收
2.4.7.2 函式示例
? ? 示例如下所示:
- 1.函式基本使用
def hello(name){
return "Hello,${name}"
}
println hello("Surpass") // Hello,Surpass
- 2.使用默認引數值
def hello(name,city="Shanghai"){
return "Hello,${name},welcome to ${city}"
}
println hello("Surpass") // Hello,Surpass,welcome to Shanghai
println hello("Surpass","Wuhan") // Hello,Surpass,welcome to Wuhan
- 3.使用不帶return的回傳值
def hello(name,city="Shanghai"){
def testStr="Test no return "
helloStr="Hello,${name},welcome to ${city}"
}
println hello("Surpass","Wuhan") // Hello,Surpass,welcome to Wuhan
- 4.使用不帶return的回傳值
def hello(name,city="Shanghai"){
helloStr="Hello,${name},welcome to ${city}"
def testStr="Test no return "
}
println hello("Surpass","Wuhan") // Test no return
- 5.回傳多個值
def hello(name,city="Shanghai",from="Wuhan",to="Shenzen"){
return [name,city,from,to]
}
def (name,city,from,to)=hello(name="Surpass")
println "name:${name},city:${city},from ${from},to ${to}" // name:Surpass,city:Shanghai,from Wuhan,to Shenzen
原文地址:https://www.jianshu.com/p/e59130bfbc16?v=1670776731178
本文同步在微信訂閱號上發布,如各位小伙伴們喜歡我的文章,也可以關注我的微信訂閱號:woaitest,或掃描下面的二維碼添加關注:

作者: Surpassme
來源: http://www.jianshu.com/u/28161b7c9995/
http://www.cnblogs.com/surpassme/
宣告:本文著作權歸作者所有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出 原文鏈接 ,否則保留追究法律責任的權利,如有問題,可發送郵件 聯系,讓我們尊重原創者著作權,共同營造良好的IT朋友圈,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/540013.html
標籤:其他
