关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。
想改进这个问题?将问题更新为 on-topic对于堆栈溢出。
1年前关闭。
Improve this question
我对 Go 完全陌生,正在经历 https://tour.golang.org/flowcontrol/8
我尝试了以下for循环(它是否真正解决了页面带来的问题无关紧要,我只对这里的语法感兴趣)。您可以假设 z
和 x
给出:
for z < x; z -= (z*z - x) / (2*z) {
fmt.Println(z)
}
尝试运行时出现以下错误:
./prog.go:9:36: syntax error: unexpected {, expecting semicolon or newline
./prog.go:10:17: syntax error: z -= (z * z - x) / (2 * z) used as value
我可以通过将循环更改为这样来摆脱第一个错误:
for z < x; z -= (z*z - x) / (2*z); {
fmt.Println(z)
}
但我仍然得到第二个错误。
最佳答案
你的循环应该是这样的for ;z < x; z -= (z*z - x) / (2*z) {
fmt.Println(z)
}
;应该出现在 z < x 条件之前这是因为 ,
for 循环的语法是 for [control var] ; [健康)状况] ; [迭代] {//正文 }
就一个;可以用作空语句,因此通过使用它,我们为 for 循环提供了所有必需的参数。
; x < z; x++
正如您所看到的,第一个分号表示空/空语句(因为我们没有设置任何变量),第二个是条件,第三个是迭代命令。
现在你可以清楚地理解在你的第二种方法中z < x; z -= (z*z - x) / (2*z);
z
希望你能理解...
关于loops - Go 中的循环语法错误 : variable used as value,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62028890/