慢聊Go之GoVSJava之微观比较(5)|Go主题月

411 阅读2分钟

image.png

"进阶架构师" 微信公众号,欢迎大家订阅、阅读、评论、点赞!!!!

前言

正常来说,一门语言最基本的语法,那就是判断、循环。我们已经讲了判断,今天我们来搞一下循环。

话不多说,开搞!

Java中的循环

for循环
public static void main(String[]args) {
    for(int i=0;i < 10;i++) {
        // for循环
        continue;
    }
}
while循环
public static void main(String[]args) {
    while(true) {
        // while 循环
    }
}
do while循环
do {
    // do something
} while(true);

Go中的循环

for循环

示例1:与Java相比省略小括号

package main

import (
"fmt"
)

func main() {
   for i := 1; i < 10; i++ {
      fmt.Println(i)
   }
}

示例2:和while相同,break、continue同java关键词一样的

package main

import (
   "fmt"
)

func main() {
   i := 0
   //省略另外两项,相当于java中的while
   for i < 3 {
      i++
   }
   //break用法相同
   for i == 3 {
      fmt.Println(i)
      break
   }
}

示例3:死循环,三项均可省略

package main

func main() {
   for {

   }

   for true {

   }

}

示例4:嵌套循环和Java也是一样,哈哈不再赘述演示了。

示例5:range循环 -- Go中拥有的方式

package main

import "fmt"

func main() {
   var data [10]int = [10]int{1,2,3,4,5,6,7,8,9,10}
   for  i, num := range data {
      fmt.Println(i,num)
   }
}
goto

在Go语言中,使用了一种跳转方式。不知道,谁能记得,在Java中预留的没有使用的关键字,Goto。虽然预留,但是没有使用。在C语言中是正常用的。

在Go语言中,使用了goto关键字,进行跳转。

package main

import "fmt"

func main() {

   //goto可以用在任何地方,但是不能跨函数使用
   fmt.Println("start")

   //go to的作用是跳转,中间的语句不执行,无条件跳转
   goto my_location //goto是关键字, my_location可以自定义,他叫标签

   fmt.Println("over")
   my_location:
   fmt.Println("location")
}

总结

选择结构、判断结构、循环结构,是我们再学习一门语言的必须掌握的结构体。之前,我们学了判断,今天,我们学习了循环,对比Java和Go的结构,其实基本上异曲同工之妙。

时间是一个难以匹敌的对手,总会让你上前。也总会让你变成一个不同的存在。

所以努力上前吧。加油!!