流程控制
1、while语句
在执行while语句时,先计算condition值(一个布尔值),如果为真(true),则执行while语句中内嵌的语句。循环一直执行下去直到condition值为假(false)。
语法 | 示例 | 输出结果 |
while(condition) { statement #1 statement #2 } | def LIMIT = 3 def count = 1 while (count <= LIMIT) { println "Count: ${count}" count += 1 } | count: 1 count: 2 count: 3
|
2、for语句
用于循环处理某个范围、集合(列表、映射或者数组)或字符串。
语法 | 示例 | 输出结果 |
for (variable in range){ statement #1 statement #2 } | for (count in 1..3){ println “count:${count}” } | count:1 count:2 count:3 |
for(variable in collection){ statement #1 statement #2 } | for(count in [11,12]){ println “count:${count}” } | count:11 count:12 |
for(variable in string){ statement #1 statement #2 } | for(letter in ‘He’) { println “letter:${letter}” } | letter:H letter:e
|
3、if语句
先判断条件表达式的值是否为真(true),如果为真则执行内嵌的复合语句,并会继续执行if语句后面的语句。
语法 | 示例 | 输出结果 |
if (condition1) { statement #1 } else if (condition2) { statement #2 } else{ statement #3 } | def score = 65 def grade = ''
if (score >= 70) grade = 'A' else if (score >=60 ) grade = 'B' else grade = 'C'
println "grade:${ grade }" | Grade:B |
4、switch语句
将表达式值与每个case表达式值进行比较,如果它与某个case表达式匹配,将执行从该表达式子句开始到switch结束的所有语句,如果没有匹配项,执行default。
语法 | 示例 | 输出结果 |
switch(expression) { case expression #1: statement #1a statement #1b case expression #2: statement #2a statement #2b ... ... default: statement #Da statement #Db } | def n = 2 switch(n) { case 1: println 'One' case 2: println 'Two' case 3: println 'Three' default: println 'Default' } | Two Three Default |
def n = 1 switch(n) { case 1: println 'One' break case 2: println 'Two' break default: println 'Default' break } | One | |
def num = '1234' switch(num) { case ~'[0-9]{3}-[0-9]{4}': println 'One1' break case ~'[0-9]{4}': println 'Two1' break default: println 'Default1' break } | Two1 |
1、 break语句
用于改变循环语句和switch语句中的控制流程,在循环体内执行break语句时,将立即终止循环体最内层的循环。
示例 | 输出结果 |
for (k in 1..5) { if (k > 2 && k < 4){ break } else{ println "value: ${k}" } } | value: 1 value: 2 |
2、 continue语句
countinue语句是break语句的补充,仅限于在while和for循环中使用。但使用countinue语句时,将结束本次循环,并跳转到离它最近的条件判断语句,以确保是否执行下一循环。
示例 | 输出结果 |
for (k in 1..5) { if (k > 2 && k < 4){ continue } else{ println "value: ${k}" } } | value: 1 value: 2 value: 4 value: 5 |