içinde fmt.Scanf öğesini nasıl kullanırım? Gitmede bir döngü içinde kullanıcı girdisi alırken bir queer sorunu yaşıyorum. İşte benim codeGo
package main
import "fmt"
func main() {
var num int
for i := 0; i < 10; i++ {
fmt.Printf("Debug: i : %d ", i)
fmt.Scanf("%d", &num)
fmt.Println(num)
}
}
Ne bu kodu çalıştırdığınızda olur şudur:
Debug: i : 0
Enter next number
1
1
Debug: i : 1
Enter next number
1
Debug: i : 2
Enter next number
2
2
Debug: i : 3
Enter next number
2
Debug: i : 4
Enter next number
3
3
Debug: i : 5
Enter next number
3
Debug: i : 6
Enter next number
4
4
Debug: i : 7
Enter next number
4
Debug: i : 8
Enter next number
5
5
Debug: i : 9
Enter next number
5
Ne fark döngünün her yineleme Git paralelliği kullanarak çünkü bu olabilir, iki kere olur olmasıdır varsayılan olarak ve her iki işlemcinin kodu bir for döngüsü içinde çalıştırmasına neden oluyor?
Görebildiğim kadarıyla, her yineleme yalnızca bir kez yapılır, 'Debug: i: n' burada' n' 0'dan 9'a gider. Yoksa başka bir şey mi demek istiyorsun? İşte terminaldeki oturumum: https://gist.github.com/4357860 Tam olarak beklendiği gibi çalışır. –
Çıktınız kodunuza uymuyor mu? – jdi
@VladimirMatveev Makinenizde çalıştırmayı denerseniz, ne demek istediğimi göreceksiniz. Scanf'i döngüde görüyor musunuz? Klavyeden 10 kez bir değer okumalıdır. Fakat verdiğim her giriş için, döngü bloğu iki kez yürütülür. Yani iki kere artırıyorum. – gprasant