《Kotlin进化之路》之【第二章:揭开Kotlin的基础面纱】(六)

2.6 循环流程控制

循环控制流程的基本语法和其它语言也是类似的,有其它语言基础的朋友这一章节也可以选择略过,不过想学习的话也未尝不可,也许说不定有重新的一个认识,没有其它语言基础的朋友,那么这个章节,可要认真的去学习哦。

为什么要有循环流程控制呢,打个比方,让你在控制器里输出100个“李晓明是最帅的人”,你该如何操作呢?写100print(“李晓明是最帅的人”),当然这样去写,也是可以的,如果换成打印1万次,1千万次呢,这样写会不会写死你?显然这样去操作,是不可取的,那么这时,循环流程控制就出来了,简短的代码就很好的诠释了我们的想法,循环流程控制的表达式有for,while, do...while,接下来我们会一一进行讲解。

2.6.1:for表达式

for循环的表达式如下:

for (item in collection) print(item)

代码演示:

fun main(args: Array<String>) {
   for (a in 1..100){
       println(a.toString()+"==李晓明是最帅的人")
   }
}

打印结果(这里我省略了一些,毕竟太多了):

1==李晓明是最帅的人
2==李晓明是最帅的人
3==李晓明是最帅的人
4==李晓明是最帅的人
5==李晓明是最帅的人
6==李晓明是最帅的人
        ……
97==李晓明是最帅的人
98==李晓明是最帅的人
99==李晓明是最帅的人
100==李晓明是最帅的人

等之后我们学习了数组集合之后,那么就可以对数组或者集合来进行遍历,这里先暂且不说,等到那一章节的时候,再进行逐步分析。

以上呢,是运用for循环来打印输出的,那么用while循环该怎么打印呢

2.6.2:while表达式

while循环的表达式如下:

while( 布尔表达式 ) {

  //循环内容

}

代码演示:

fun main(args: Array<String>) {
    var a=1
    while (a<=100){
        println(a.toString()+"==李晓明是最帅的人")
        a++
    }
}

打印结果(同样,中间的我都省略了):

1==李晓明是最帅的人
2==李晓明是最帅的人
3==李晓明是最帅的人
4==李晓明是最帅的人
5==李晓明是最帅的人
6==李晓明是最帅的人
        ……
97==李晓明是最帅的人
98==李晓明是最帅的人
99==李晓明是最帅的人
100==李晓明是最帅的人

2.6.3:do…while表达式

do…while循环的表达式如下:

do {

       //代码语句

}while(布尔表达式);

代码演示:

fun main(args: Array<String>) {
    var a=1
    do {
        println(a.toString()+"==李晓明是最帅的人")
        a++
    }while (a<=100)

}

打印结果(同样,中间的我都省略了):

1==李晓明是最帅的人
2==李晓明是最帅的人
3==李晓明是最帅的人
4==李晓明是最帅的人
5==李晓明是最帅的人
6==李晓明是最帅的人
        ……
97==李晓明是最帅的人
98==李晓明是最帅的人
99==李晓明是最帅的人
100==李晓明是最帅的人

dowhile 循环 对于 while 语句而言,如果不满足条件,则不能进入循环。

但有时候我们需要即使不满足条件,也至少执行一次。

dowhile 循环和 while 循环相似,不同的是,dowhile 循环至少会执行一次。

2.6.3:举例,使用各个循环打印九九乘法表

2.6.3.1:使用for循环打印

代码演示:

fun main(args: Array<String>) {
  for (a in 1..9){
      for (b in 1..a){
          print(b.toString()+"*"+a.toString()+"="+(b*a)+" \t")
      }
      println()
  }
}

打印结果:

1*1=1
1*2=2  2*2=4
1*3=3  2*3=6      3*3=9
1*4=4  2*4=8      3*4=12     4*4=16
1*5=5  2*5=10     3*5=15     4*5=20     5*5=25
1*6=6  2*6=12     3*6=18     4*6=24     5*6=30     6*6=36
1*7=7  2*7=14     3*7=21     4*7=28     5*7=35     6*7=42     7*7=49
1*8=8  2*8=16     3*8=24     4*8=32     5*8=40     6*8=48     7*8=56     8*8=64
1*9=9  2*9=18     3*9=27     4*9=36     5*9=45     6*9=54     7*9=63     8*9=72     9*9=81     

2.6.3.2:使用while循环打印

代码演示:

fun main(args: Array<String>) {
    var a=1
    var b=1
    while (a<=9){
        b=1
        while (b<=a){
            print(b.toString()+"*"+a.toString()+"="+(b*a)+" \t")
            b++
        }
        a++
        println()
    }
}

打印结果:

1*1=1
1*2=2  2*2=4
1*3=3  2*3=6      3*3=9
1*4=4  2*4=8      3*4=12     4*4=16
1*5=5  2*5=10     3*5=15     4*5=20     5*5=25
1*6=6  2*6=12     3*6=18     4*6=24     5*6=30     6*6=36
1*7=7  2*7=14     3*7=21     4*7=28     5*7=35     6*7=42     7*7=49
1*8=8  2*8=16     3*8=24     4*8=32     5*8=40     6*8=48     7*8=56     8*8=64
1*9=9  2*9=18     3*9=27     4*9=36     5*9=45     6*9=54     7*9=63     8*9=72     9*9=81     

2.6.3.3:使用do…while循环打印

代码演示:

fun main(args: Array<String>) {
    var a=1
    var b=1
    do {
        b=1
        while (b<=a){
            print(b.toString()+"*"+a.toString()+"="+(b*a)+" \t")
            b++
        }
        a++
        println()
    } while (a<=9)
}

打印结果:

1*1=1
1*2=2  2*2=4
1*3=3  2*3=6      3*3=9
1*4=4  2*4=8      3*4=12     4*4=16
1*5=5  2*5=10     3*5=15     4*5=20     5*5=25
1*6=6  2*6=12     3*6=18     4*6=24     5*6=30     6*6=36
1*7=7  2*7=14     3*7=21     4*7=28     5*7=35     6*7=42     7*7=49
1*8=8  2*8=16     3*8=24     4*8=32     5*8=40     6*8=48     7*8=56     8*8=64
1*9=9  2*9=18     3*9=27     4*9=36     5*9=45     6*9=54     7*9=63     8*9=72     9*9=81     

2.6.4:举例,使用各个循环打印100以内的奇数

2.6.4.1:使用for循环打印

代码演示:

fun main(args: Array<String>) {
   for (a in 1..100){
       if (a%2!=0){ // 如果a%2==0 那么这个数就是偶数
           println(a)
       }
   }
}

打印结果(由于太多,中间都省略了):

1
3
5
7
9
……
93
95
97
99

2.6.4.2:使用while循环打印

代码演示:

fun main(args: Array<String>) {
    var a=1
    while (a<=100){
        if (a%2!=0){ // 如果a%2==0 那么这个数就是偶数
            println(a)
        }
        a++
    }
}

打印结果:

1
3
5
7
9
……
93
95
97
99

2.6.4.3:使用do…while循环打印

代码演示:

fun main(args: Array<String>) {
    var a=1
    do {
        if (a%2!=0){ // 如果a%2==0 那么这个数就是偶数
            println(a)
        }
        a++
    }while (a<=100)
}

打印结果:

1
3
5
7
9
……
93
95
97
99

2.6.5:举例,使用各个循环打印100以内可以开方的数

2.6.5.1:使用for循环打印

代码演示:

fun main(args: Array<String>) {
   for (a in 1..100){
       var sq= sqrt(a.toFloat()) //kotlin中的数学函数,后续会讲到
       if (((sq*sq)%sq)==0F){
           println((sq*sq).toInt())
       }
   }
}

打印结果:

1
4
9
16
25
36
49
64
81
100

2.6.5.2:使用while循环打印

代码演示:

fun main(args: Array<String>) {
    var a =0
    while (a<=100){
        var sq= sqrt(a.toFloat()) //kotlin中的数学函数,后续会讲到
        if (((sq*sq)%sq)==0F){
            println((sq*sq).toInt())
        }
        a++
    }
}

打印结果:

1
4
9
16
25
36
49
64
81
100

2.6.5.3:使用do…while循环打印

代码演示:

fun main(args: Array<String>) {
    var a =0
    do {
        var sq= sqrt(a.toFloat()) //kotlin中的数学函数,后续会讲到
        if (((sq*sq)%sq)==0F){
            println((sq*sq).toInt())
        }
        a++
    }while (a<=100)
}

打印结果:

1
4
9
16
25
36
49
64
81
100

获取更多文章,请关注我的微信公众号:搜索HelloAbner或扫描下面二维码:


猜你喜欢

转载自blog.csdn.net/ming_147/article/details/80194777