সামনে এবং পিছনে এক লাইনে লুপ করুন


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

ওপি যেমন জিজ্ঞাসা করেছে তত যুক্তিই এক লাইনে

  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);

জাভাস্কিপ্টে (ঠিক আপনি লাইভ ডেমো দেখতে পারেন):

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+ " ");
       }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.