厚土Go学习笔记 | 12. if 语句

for 循环的最后一个代码演示中,有了 if 语句。

那个 if 语句是这样写的

if (i>3) {
    break
}

有一点,你要知道。在Go语言中,if 后面的 () 不是必须的。只有 { } 是必须的。所以你可以写成这样

if i>3 {
    break
}

在Go语言中,if 还可以在条件之前执行一个简单的语句。

有这个语句定义的变量的作用域仅在 if 范围之内。

package main

import (
    "fmt"
    "math"
)

func pow(x, n, lim float64) float64 {
    if v := math.Pow(x, n); v < lim {
        return v
    }
    return lim
}

func main() {
    fmt.Println(
        pow(3, 2, 10),
        pow(3, 3, 20),
    )
}

以上这个例子是求x的n次方。如果求得的结果比 lim 小,就返回结果,否则就返回 lim

运行此例,可以看到这样的结果。

9 20

if 语句常会有 else 块跟随,在 if 条件之前的简单语句,在 else 块中仍然有效。

修改上面的程序,当x的n次方不小于lim时,屏幕打印一句话。

package main

import (
    "fmt"
    "math"
)

func pow(x, n, lim float64) float64 {
    if v := math.Pow(x, n); v < lim {
        return v
    } else {
        fmt.Printf("%g >= %g\n", v, lim)
    }
    return lim
}

func main() {
    fmt.Println(
        pow(3, 2, 10),
        pow(3, 3, 20),
    )
}

运行结果

27 >= 20
9 20

注意结果的显示顺序。首先是func pow()的运行结果输出,然后才是主函数的输出。

原文发布于微信公众号 - Golang语言社区(Golangweb)

原文发表时间:2017-12-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java成长之路

动态代理详解

代理 是常用的基本设计模式之一,在某些情况下,一个客户不想或者不能直接引用一个对 象,此时可以通过一个称之为“代理”的第三者来实现 间接引用。代理对象可以在客户...

861
来自专栏个人分享

JDK1.7新特性

1 对集合类的语言支持;  2 自动资源管理;  3 改进的通用实例创建类型推断;  4 数字字面量下划线支持;  5 switch中使用string;  6 ...

2452
来自专栏编程

Python读书笔记11

前面的文章和大家分享了数字、字符串、列表和元组,我们重新声明这些变量回顾一下! 数字、浮点数直接用等号声明 字符串需要将内容用英文单引号或双引号括起来 列表是外...

1998
来自专栏landv

C语言-字符串文本串联

2033
来自专栏Java帮帮-微信公众号-技术文章全总结

【选择题】Java基础测试三(15道)

【选择题】Java基础测试三(15道) 26.关于以下程序代码的说明正确的是( D ) 1.class HasStatic{ 2. privat...

3907
来自专栏柠檬先生

Sass 基础(六)

join() 函数    join()函数是将两个列表连接合并成一个列表。    >>join(10px 20px, 30px 40px)       (...

20510
来自专栏数据结构与算法

P2085 最小函数值(minval)

题目描述 有n个函数,分别为F1,F2,...,Fn。定义Fi(x)=Aix^2+Bix+Ci (x∈N*)。给定这些Ai、Bi和Ci,请求出所有函数的所有函数...

3255
来自专栏Android机动车

转向Kotlin——枚举类和扩展

Kotlin中的枚举类和Java中的枚举类型非常相似,具有类的特性。一般将可枚举的同类型的一组值作为枚举类定义。

922
来自专栏Android机动车

转向Kotlin——数据类和封闭类

数据类是Kotlin的一个语法糖。Kotlin编译器会自动为数据类生成一些成员函数,以提高开发效率。

872
来自专栏程序员阿凯

java中“53”个关键字(含2个保留字)

1605

扫码关注云+社区

领取腾讯云代金券