में fmt.Scanf का उपयोग कैसे करूं, मुझे लगता है कि एक लूप के अंदर उपयोगकर्ता इनपुट प्राप्त करते समय मुझे क्वियर समस्या हो रही है। यहाँ है मेरी codeमैं
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)
}
}
क्या होता है जब मैं इस कोड को चलाने यह है:
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
क्या मैं देखा कि पाश की प्रत्येक यात्रा दो बार होता है, इस वजह से हो सकता है जाओ समानांतरवाद का उपयोग कर रहा है डिफ़ॉल्ट रूप से और दोनों प्रोसेसर को लूप के भीतर कोड चलाने के लिए कारण बनता है?
जहां तक मैं देख सकता हूं, प्रत्येक पुनरावृत्ति केवल एक बार किया जाता है, 'डीबग: i: n' जहां 'n' 0 से 9 तक जाता है, ठीक उसी तरह से सुझाव देता है। या आप कुछ और मतलब है? टर्मिनल में मेरा सत्र यहां दिया गया है: https://gist.github.com/4357860 यह बिल्कुल अपेक्षित काम करता है। –
आपका आउटपुट आपके कोड से मेल नहीं खाता है? – jdi
@VladimirMatveev यदि आप इसे अपनी मशीन पर चलाने का प्रयास करते हैं, तो मुझे लगता है कि आप देखेंगे कि मेरा क्या मतलब है। क्या आप लूप में स्कैनफ देखते हैं? इसे 10 बार कीबोर्ड से एक मान पढ़ना चाहिए। लेकिन प्रत्येक इनपुट के लिए मैं देता हूं, लूप ब्लॉक दो बार निष्पादित करता है। तो मैं दो बार वृद्धि करता हूं। – gprasant