流程控制

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