循环中是否满足条件

时间:2019-11-06 05:56:48

标签: loops for-loop go

使用Javascript完成新手进入此处的操作。 我希望执行一个基本循环,并在其中包含if语句,但是,没有得到预期的结果。

package main

import (
    "fmt"
)

func looper(x int) {
    sum := 0
    for sum < 10 {
        if x == sum {
            fmt.Print("Match")
            return
        } else {
            fmt.Println("No Match")
        }
    }
}

func main() {
    looper(8)
}

我希望当迭代器变量“ sum”的值等于8时会打印“匹配”。

相反,我得到了很多“ No Match”。

4 个答案:

答案 0 :(得分:2)

也许您正在寻找这样的东西:

package main

import (
    "fmt"
)

func looper(x int) {
    for sum := 0; sum < 10; sum++ {
        if x == sum {
            fmt.Print("Match")
            return
        } else {
            fmt.Println("No Match")
        }
    }
}

func main() {
    looper(8)
}

答案 1 :(得分:1)

代码无法正常工作的主要原因是因为您的for循环中没有计数器,因此它实际上处于无穷循环中,并且不会终止。

for循环的格式如下:

for i := 0; i < <some_terminating_value>; i++ {
    do stuff
}

要求:“我希望当迭代器变量'sum'的值等于8时打印'Match'。相反,我会得到很多'No Match'。”

仅看您的代码,您对尝试执行的操作的解释似乎就冲突了。

您的要求似乎在存在sum == x且没有其他内容的情况下指定打印“匹配”,但是您的代码正在打印“不匹配” 7次并在第8次迭代中“匹配”。

只要超出您的要求,您的代码应如下所示:


package main

import (
    "fmt"
    "strconv"
)

func looper(x int) {
    for i := 0; i <= x; i++ {
        if i == x {
            fmt.Print("Value: " + strconv.Itoa(i) + " = Match")
            return
        }
    }
}

func main() {
    looper(8)
}

关闭代码后,该函数应如下所示:

package main

import (
    "fmt"
)

func looper(x int) {
    for i := 0; i <= x; i++ {
        if i == x {
            fmt.Print("Match")
            return
        } else {
            fmt.Println("No Match")
        }
    }
}

func main() {
    looper(8)
}

答案 2 :(得分:1)

如果要使用while样式循环,只需增加sum变量

package main

import (
    "fmt"
)

func looper(x int) {
    sum := 0
    for sum < 10 {
        if x == sum {
            fmt.Print("Match")
            return
        } else {
            fmt.Println("No Match")
        }
        sum++ //<----------------------------HERE
    }
}

func main() {
    looper(8)
}

答案 3 :(得分:0)

您的循环似乎只有条件,请检查Loops and iteration

使用:

for sum := 0; sum < 10; sum++{}