首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Golang分配

Golang分配
EN

Stack Overflow用户
提问于 2019-04-29 19:21:01
回答 1查看 637关注 0票数 0

在Golang中获取平方和

EN

回答 1

Stack Overflow用户

发布于 2019-04-29 20:26:59

Go没有您可能在其他语言中熟悉的whileuntilforeach循环结构。在Go中,forrange语句将它们全部替换:

代码语言:javascript
复制
// Three expressions, i.e. the usual
for i := 0; i < n; i++ {
}

// Single expression; same as while(condition) in other languages
for condition { 
}

// No expressions; endless loop, i.e. same as while(true) or for(;;)
for {
}

// for with range; foreach and similar in other languages. Works with slices, maps, and channels.
for i, x := range []T{} {
}

如果不允许使用Go的单循环结构,则只能使用递归或the goto statement

代码语言:javascript
复制
package main

import (
    "fmt"
)

func main() {
    var N int
    fmt.Scan(&N)

    fmt.Println(f(N, 0))
}

func f(n, sum int) int {
    if n == 0 {
        return sum
    }

    var Y int
    fmt.Scan(&Y)
    if Y > 0 {
        sum += Y * Y
    }

    return f(n-1, sum)
}

使用goto

代码语言:javascript
复制
package main

import (
    "fmt"
)

func main() {
    var N, Y, sum int
    fmt.Scan(&N)

again:
    fmt.Scan(&Y)
    if Y > 0 {
        sum += Y * Y
    }

    N--
    if N > 0 {
        goto again
    }

    fmt.Println(sum)
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55902279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档