• 【原创】go语言学习(四)流程控制


    目录:

    1、if else语句块

    2、for语句

    3、switch语句

    if else语句块

    1、基本语法

    if condition {      
      //do something
    }

    if statement; condition {
     
    }

    if condition {
         //do something
    } else if condition {
       //do something
    } else {
        //do something
    }

     

    2、练习一

     

    // 奇偶数
    func testIf1() {
    	num := 10
    	// var num int
    	// num = 10
    	if num%2 == 0 {
    		fmt.Printf("num:%d is  even
    ", num)
    	} else {
    		fmt.Printf("num:%d is odd
    ")
    	}
    }
    

      

    3、练习二

    // if.. else if 可赋值
    func testIf3() {
    	// num := 10
    	// var num int
    	// num = 10
    
    	// if语句块中定义num, num会在语句块中销毁
    	if num := 11; num%2 == 0 {
    		fmt.Printf("num %d is even
    ", num)
    	} else {
    		fmt.Printf("num:%d is odd
    ", num)
    	}
    
    	// 为空
    	fmt.Printf("num=%d
    ", num)
    }
    

      

    4、练习三

    // 方法
    func getNum() int {
    	return 10
    }
    
    func testIf4() {
    	// if语句块中定义num, num会在语句块中销毁
    	if num := getNum(); num%2 == 0 {
    		fmt.Printf("num %d is even
    ", num)
    	} else {
    		fmt.Printf("num:%d is odd
    ", num)
    	}
    
    	// 为空
    	fmt.Printf("num=%d
    ", num)
    }

    for语句

    1、Go语⾔言中只有⼀一种循环 for

    for initialisation; condition; post {
      
    }
    

      

    2、练习一

    func testFor1() {
    
    	// for块中定义,结束时i销毁
    	//for i := 1; i <=10 ; i++ {
    	//	fmt.Printf("i=%d
    ",i)
    	//}
    
    	// 不销毁
    	var i int
    	for i = 1; i <= 10; i++ {
    		fmt.Printf("i=%d
    ", i)
    	}
    
    	fmt.Printf("final:i=%d
    ", i)
    }
    

      

    3、练习二

    // break 跳出循环 continue
    func testFor2() {
    	var i int
    	for i = 1; i <= 10; i++ {
    		if i > 5 {
    			break
    			// continue
    		}
    		fmt.Printf("i=%d
    ", i)
    	}
    
    	fmt.Printf("final:i=%d
    ", i)
    }
    

      

    4、练习三

    // continue结束本次循环,跳到下次循环
    func testFor3() {
    	var i int
    	for i = 1; i <= 10; i++ {
    		if i%2 == 0 {
    			continue
    		}
    		fmt.Printf("i=%d
    ", i)
    	}
    
    	fmt.Printf("final:i=%d
    ", i)
    }

    // 二种写法
    func testFor4() {
    //var i int
    //i = 1;
    i := 1
    for i <= 10 {
    fmt.Printf("i=%d ", i)
    i = i + 2
    }

    fmt.Printf("final:i=%d ", i)
    }

    // 三种写法
    func testFor5() {
    //var i int
    //i = 1;
    i := 1
    for i <= 10 {
    fmt.Printf("i=%d ", i)
    i = i + 2
    }

    fmt.Printf("final:i=%d ", i)
    }

      

    5、练习四

    // 多行赋值
    func testMultiSign() {
    	//var a int
    	//var b string
    	//var c int
    	a, b, c := 10, "hello", 100
    
    	fmt.Printf("a=%d b=%s c=%d
    ", a, b, c)
    }
    
    // 多条件for
    func testFor6() {
    	for no, i := 10, 1; i < 10 && no <= 19; i, no = i+1, no+1 {
    		fmt.Printf("%d * %d = %d", i, no, i*no)
    	}
    }
    

      

    5、练习五

    // 无限循环for
    func testFor7() {
    	for {
    		fmt.Printf("hello
    ")
    	}
    }
    

      

    switch语句

    1、case语句

    func testIf() {
    	var a int = 2
    	if a == 1 {
    		fmt.Printf("a=1
    ")
    	} else if a == 2 {
    		fmt.Printf("a=2
    ")
    	} else if a == 3 {
    		fmt.Printf("a=3
    ")
    	} else if a == 4 {
    		fmt.Printf("a=4
    ")
    	} else {
    		fmt.Printf("a=5
    ")
    	}
    }

    func testSwitch() {
    var a int = 2
    switch a {
    case 1:
    fmt.Printf("a=1 ")
    case 2:
    fmt.Printf("a=2 ")
    case 3:
    fmt.Printf("a=3 ")
    case 4:
    fmt.Printf("a=4 ")
    case 5:
    fmt.Printf("a=5 ")
    default:
    fmt.Printf("a=?? ")
    }
    }

      

    2、写法二

    func getValue() int {
    	return 6
    }
    
    // 写法二
    func testSwitch2() {
    	switch a := getValue(); a {
    	case 1:
    		fmt.Printf("a=1
    ")
    	case 2:
    		fmt.Printf("a=2
    ")
    	case 3:
    		fmt.Printf("a=3
    ")
    	case 4:
    		fmt.Printf("a=4
    ")
    	case 5:
    		fmt.Printf("a=5
    ")
    	default:
    		fmt.Printf("a=??
    ")
    	}
    }
    

      

    3、练习一

    func testSwitch3() {
    	switch a := getValue(); a {
    	case 1, 2, 3, 4, 5:
    		fmt.Printf("a>=1 and a<=5
    ")
    	case 6, 7, 8, 9, 10:
    		fmt.Printf("a>=6 and a<=10
    ")
    	default:
    		fmt.Printf("a > 10
    ")
    	}
    }
    

      

    4、练习二

    func testSwitch4() {
    	var num = 60
    	switch {
    	case num >= 0 && num <= 25:
    		fmt.Printf("a>=0 and a<=25
    ")
    	case num > 25 && num <= 50:
    		fmt.Printf("a > 25 and a <=50
    ")
    	case num > 50 && num <= 75:
    		fmt.Printf("a > 50 and a <= 75
    ")
    	case num > 75 && num <= 100:
    		fmt.Printf("a > 75 and a <= 100
    ")
    	default:
    		fmt.Printf("invalid a = %d 
    ", num)
    	}
    }
    

      

    5、fallthrough 穿透case块,执行下一个case块

    // fallthrough 穿透case块,执行下一个case块,执行代码
    func testSwitch5() {
    	var num = 60
    	switch {
    	case num >= 0 && num <= 25:
    		fmt.Printf("a>=0 and a<=25
    ")
    	case num > 25 && num <= 50:
    		fmt.Printf("a > 25 and a <=50
    ")
    	case num > 50 && num <= 75:
    		fmt.Printf("a > 50 and a <= 75
    ")
    		fallthrough
    	case num > 75 && num <= 100:
    		fmt.Printf("a > 75 and a <= 100
    ")
    	default:
    		fmt.Printf("invalid a = %d 
    ", num)
    	}
    }
    

      

    6、打印99乘法表

    // 打印 99乘法表
    func testMulti() {
    	//1*1=1
    	//1*2=2 2*2=4
    	//1*3=3 2*3=6 3*3=9
    
    	for i := 1; i < 10; i++ {
    		for j := 1; j <= i; j++ {
    			fmt.Printf("%d * %d = %d", j, i, j*i)
    		}
    		fmt.Println()
    	}
    }
    

      

  • 相关阅读:
    ssh
    ssh免密码登陆
    滑雪[dp]
    Help Jimmy[dp]
    动态规划 [子序列问题]
    最佳加法表达式 [dp]
    求排列的逆序数[归并排序]
    输出前m大个数,时间复杂度O(n+mlog(m)) [快排]
    不会递归?五道例题教你如何递归
    函数模板的琐碎笔记
  • 原文地址:https://www.cnblogs.com/wangshuyang/p/11725701.html
Copyright © 2020-2023  润新知