क्या लूप के लिए कोड करने का एक तरीका है ताकि यह एक अनुक्रम के माध्यम से वृद्धि न हो?


10

मेरे पास यह लूप है:

  for (int i = 1; i < 10; i++)

लेकिन इसके बजाय मैं सिर्फ 1,2,4,5 और 7 के लिए i करना चाहूंगा और मैं इसे हार्डकोड करूंगा।

वहाँ एक तरह से मैं एक सरणी की तरह कुछ के साथ यह कर सकता है?


1
अपने आवश्यक नंबरों की एक सरणी बनाएं और
— फॉर्वर्ड का

2
अधिक विवरण दे सकते हैं ताकि हम प्रासंगिक समाधान प्रदान करने में मदद कर सकें? आप कितनी बार स्किपिंग नंबरों पर योजना बनाते हैं? आप कितने नंबर को छोड़ने की उम्मीद करते हैं? आपको कैसे पता चलेगा कि किस नंबर को स्किप करना है? आप पहले स्थान पर संख्या क्यों छोड़ रहे हैं? आप क्या और कैसे कर रहे हैं?
— कोरेंटिन पेन 11

यह आसान नहीं है जैसा कि मैंने शुरुआत में डुप्लिकेट खोजने के लिए सोचा था
— मोंग झू

जवाबों:


13

आप इस तरह की संख्याएँ देने के लिए एक सरणी का उपयोग कर सकते हैं

int[] loop = new int[] {1,2,4,5,7};
foreach(int i in loop)
    Console.WriteLine(i);

या क्या यह इनलाइन है जो मेरी राय में मूल्यों की सूची बढ़ने पर उतना साफ नहीं है

foreach(int i in new int[] {1,2,4,5,7})
    Console.WriteLine(i);

1
दूसरा मेरे लिए क्लीनर है - लूप के दौरान सरणी केवल दायरे में है। इसके अलावा, इसे वास्तव में "स्वच्छ" बनाने के लिए, आप intघोषणा को हटा सकते हैं , क्योंकि कंपाइलर सामग्री से यह निर्धारित करेगा।
— रुफस एल


4

मूल रूप से यहां उत्तर सही हैं, सिर्फ इसलिए कि आपने लूप के forबजाय स्पष्ट रूप से पूछा foreach:

int[] loop = new int[] { 1, 2, 4, 5, 7 };
for (int i = 0; i< loop.Length; i++)
{
    Console.WriteLine(loop[i]);
}

https://dotnetfiddle.net/c5yjPe


0

यदि आप विशेष रूप से लूप के लिए चाहते हैं तो इसके साथ जाएं:

var list = new List<int>() { 1, 2, 4, 5, 7 };
        for (int i = 0; i < list.Count; i++) // Loop through List with for
        {
            Console.WriteLine(list[i]);
        }

0

स्पष्ट रूप से सामान्य मामले के लिए सही उत्तर का उपयोग करना है foreachया अनुक्रमित लुकअप का उपयोग करना है जैसा कि अन्य उत्तरों में दिखाया गया है, लेकिन सिर्फ पूर्णता के लिए:

आप उपयोग कर सकते हैं किसी भी एक के भीतर बयान forसशर्त, सहित अभिव्यक्ति,। इसे ध्यान में रखते हुए, एक आवश्यक वृद्धि के लिए सशर्त वेतन वृद्धि या यहां तक ​​कि एक संपूर्ण सशर्त (राज्य मशीन?) का निर्माण करना आसान है :

for (int i = 1; i <= 7; i += (i == 5 || i == 2) ? 2 : 1)
{
    Console.Write(i);
}
// Output: 12457

for (int i = 1; i > 0; i = i switch {1=>2, 2=>4, 4=>5, 5=>7, 7=>-1})
{
    Console.Write(i);
}
// Output: 12457

या यहां तक ​​कि कुछ वास्तव में मूर्खतापूर्ण एक आत्म अनुक्रमण देखने की तरह:

for (int i = 1; i > 0; i = new []{0,2,4,0,5,7,0,-1}[i])
{
    Console.Write(i);
}
// Output: 12457
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.