Основная причина, по которой ваш код не работает, заключается в том, что у вас нет счетчика в цикле for, следовательно, он фактически находится в бесконечном цикле и не завершится.
Формат цикла forкак показано ниже:
for i := 0; i < <some_terminating_value>; i++ {
do stuff
}
Требование: «Я ожидаю, что« Match »будет напечатано, когда 8 равно значению переменной sum для итератора. Вместо этого я получаю много« No Match »вместо. есть сумма == x и ничего больше, однако ваш код печатает Not Match 7 раз и Match на 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)
}