/ / लूप के लिए नेस्टेड - जावा, लूप, फॉर-लूप, नेस्टेड

लूप के लिए नेस्टेड - जावा, लूप, फॉर-लूप, नेस्टेड

मेरे पास लूप के लिए नियमित रूप से एक सभ्य शुरुआत करने वाला समझ है लेकिन मुझे जावा में लूप के लिए नेस्टेड के चारों ओर अपने सिर को लपेटने में परेशानी हो रही है।

जिस समस्या में मैं काम कर रहा हूं, मेरे पास स्थिर हैपूर्णांक जो अधिकतम संख्या है, और फिर मैं उपयोगकर्ता को 4 अलग-अलग संख्या इनपुट के लिए पूछता हूं। उन 4 इनपुट से, मैं यह निर्धारित करने की कोशिश कर रहा हूं कि मैं उनमें से कौन सा निरंतर पूर्णांक "अंदर" फिट कर सकता हूं।

आईई: यदि निरंतर पूर्णांक 30 है और उपयोगकर्ता 5, 9, 3, और 21 इनपुट करता है तो यह उन्हें बताएगा कि वे केवल 5, 9, और 3 का उपयोग कर सकते हैं क्योंकि 21 जोड़ने के लिए बहुत बड़ा होगा।

कहानी रूप में समस्या यह है कि उपयोगकर्ता के पास एक हैknapsack कि वजन की एक निश्चित राशि रखती है। कार्यक्रम उपयोगकर्ता को 4 अलग-अलग आइटम वजन इनपुट करने के लिए कहता है और फिर यह तय करता है कि यह बैग में कौन सी चीजें फिट हो सकता है।

यह एक स्कूल प्रोजेक्ट के लिए है इसलिए मुझे लूप के लिए नेस्टेड का उपयोग करने की आवश्यकता है।

उत्तर:

उत्तर № 1 के लिए 1

मैंने किसी भी जावा को नहीं किया है, लेकिन मुझे पता है कि सी # काफी समान है।

मैं ऐसा करूंगा:

int max = 30;
int value = 0;
int counter = 0;
int[] input[4] = new int[5, 9, 3, 21];
bool[] canAddInput[4] = new bool[false, false, false, false];

for(value; value <= max; )
{
for(counter; counter < 4; counter++)
{
value += input[i];
if(value<=max)
canAddInput[i] = true;
}

if(counter >= 4)
Break;
}

जवाब के लिए 0 № 2

लूप के लिए नेस्टेड के बारे में सोचने का कोई आसान तरीका इस तथ्य को अनदेखा करना है कि वे घोंसले हैं। सम्मेलन से, आप आमतौर पर उपयोग करेंगे i बाहरी पाश के वृद्धि काउंटर और के लिए j आंतरिक पाश के लिए, जो सबसे महत्वपूर्ण हैशुरुआत में सीधे रखने के लिए चीज। यदि यह आपके लिए भ्रम का मुद्दा है, तो संभवत: आपको "i" और "j" अक्षरों की तुलना में आपके वृद्धि चर के लिए अधिक वर्णनात्मक नामों का उपयोग करने के लिए लाभ होगा, उदाहरण के लिए outer तथा inner.

किसी भी समय जब आप अपने प्रोग्राम के तर्क को ढूढ़ने की कोशिश कर रहे हैं तो आपको केवल ध्यान केंद्रित करने की आवश्यकता है for लूप कि आप सबसे सीधे अंदर काम कर रहे हैं - कम से कम जब आप पहली बार शुरू कर रहे हैं और उनके बारे में सीख रहे हैं।


जवाब के लिए 0 № 3

नेस्टेड लूप को समझने के लिए, आप सरल उदाहरणों से शुरू कर सकते हैं, और फिर कड़ी मेहनत कर सकते हैं। उदाहरण के लिए, मान लें कि आप एक काउंटर बनाना चाहते हैं।

int i, j;
for (i=0; i <= 9; i++)
{
for (j=0; j <= 9; j++)
{
System.out.println(i+""+j)
}
}

आउटपुट 00 से 99 तक की संख्या है। आप लूप के आउटपुट को पेपर या कुछ में लिख सकते हैं यह देखने के लिए कि यह कैसे काम करता है। आइए इस लूप का उदाहरण लें, आपके पास यह आउटपुट है:

00 //here your program entered the outer loop, i has now the value 0, after that, you enter to the inner loop, i remains 0, but j will change in the next iteration
01 // you are still in the first iteration of the outer loop, but the inner loop is on the second
02 // and so on ....
03
04
05
06
07
08
09 // ... until the inner loop finished looping
10 // once the inner loop finished looping, the outer loop changes again, and we are back to the inner loop

एक बार जब यह आपके दिमाग में स्पष्ट हो जाए, तो आप तय कर सकते हैं कि आपका नेस्टेड लूप कैसा होगा। बाहरी पाश में किस चर का उपयोग किया जाना चाहिए, और आंतरिक लूप के लिए कौन से चर।