एक लाइन में आगे और पीछे लूप लें


11

मुझे लगता है कि यह एक दिलचस्प सवाल है। हम एक तरह से लूप कर सकते हैं लेकिन क्या हम इसे उसी लाइन में पीछे की तरफ लूप कर सकते हैं? मुझे मेरा आशय समझाने दीजिए। यहाँ एक उदाहरण कोड है:

for(int i = 0; i < 5; i++) { // we all know the output will be 0,1,2,3,4

मैं देख रहा हूं कि क्या कोई वर्कअराउंड है ताकि उपरोक्त विवरण प्रिंट हो सके 0,1,2,3,4,3,2,1,0?

java 

जवाबों:



2

आप इसे भी देख सकते हैं:

int a=1;
for(int i=0 ; i>-1 ; i+=a){
if (i==4)a=-a;
System.out.print(i +" ");
}

आउटपुट:

0 1 2 3 4 3 2 1 0

2

एक पंक्ति में सभी तर्क ओपी ने पूछा

  for(int i=0, d=1; i>=0 ;d=(i==4?-1:d), i+=d){
    System.out.print(i +" ");
  }

1
यह उत्तर बाकी (+1) की तुलना में भयानक और अधिक सामान्य है - आप मिन और मैक्स जैसे फ़ंक्शन तर्क के लिए लूप की स्थिति में 0 और 4 को बदल सकते हैं और फिर इसके बहुत सामान्य! 👏
एलेक्स एल

1

थोड़ा अंकगणित के साथ, आप कर सकते हैं:

for (int i = 0; i < 9; i++) {
    System.out.println(4 - Math.abs(4 - i));
}

लेकिन बस दो forछोरों का उपयोग करना लिखना और पढ़ना आसान है।




1

ऐसा करने का वास्तव में सरल तरीका नहीं है, लेकिन कुछ संशोधनों के साथ आप एक लूप के साथ समाप्त हो सकते हैं जो दिशा बदल सकते हैं:

for(int i = 0, direction = 1; 0 <= i && i < 5; direction = (i == 5-1) ? -direction : direction, i += direction)
    System.out.println(i);

0

जावा में (सामान्य, 0 और N के बीच होना जरूरी नहीं है):

public static void forwardAndBack(int min, int max) {
  for (int i = 0; i < (max - min + 0.5) * 2; i++) {
    System.out.println((min + i) > max ? max - (min + i - max) : min + i);
  }
}
forwardAndBack(1, 4);

JavaScipt में (बस आप लाइव डेमो देख सकते हैं):

function forwardAndBack(min, max) {
  for (let i = 0; i < (max - min + 0.5) * 2; i++) {
    console.log(min + i > max ? max - (min + i - max) : min + i);
  }
}
forwardAndBack(1, 4);
.as-console-wrapper { max-height: 100% !important; top: 0; }


0

एक सामान्य एक लाइनर, सभी तर्क forभावों में है।

int start = 0;
int max = 4;
  for(int n= start, asc = start, desc = max * 2 - start;  
       (n = asc < desc ? asc: desc) >= start ; 
       asc++, desc--)
       {
          System.out.print(n+ " ");
       }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.