লুপ প্রারম্ভিককরণের জন্য কেন একটি পরিবর্তনশীল ঘোষণা করতে হবে?


11
int v = 0;

for (v; v<2; v++) {
    ...

}

জাভাতে কেন এটি অনুমোদিত নয়?

vলুপের আরম্ভের জন্য কেন আমাদের পরিবর্তনশীল ঘোষণা করতে হবে ? আমি জানি আমি যদি এটির মতো করি তবে এটি কোনও বিবৃতি নয় তবে কেন জাভা উপরেরটিকে অনুমতি দেয় না?


আমরা না; for(;;)
দেহসি

3
vঅনুমোদিত নয় কারণ এটি কোনও বিবৃতি নয়: এটি একই কারণ যা আপনি v;নিজেই অন্য কোথাও লিখতে পারবেন না ।
অ্যান্ডি টার্নার

আপনি এটা প্রয়োজন হবে না একটি বর্ধিত জন্য forলুপ।
অরবিন্দ কুমার অবিনাশ

উত্তর:


14

যদি vলুপের আগে ঘোষিত হয়, আপনার বিবৃতিটির প্রথম অংশটি খালি ছেড়ে দেওয়া উচিত:

int v = 0;

for (; v < 2; v++) {
    ...
}

শুধু লেখার কোনও অর্থ নেই v;


6

আপনি vঘোষণার বহিরাগতটিকে সরিয়ে ফেললে আপনার লুপ ঘোষণার বৈধতা আছে (ধরে vনেওয়া আগেই ঘোষণা করা হয়েছিল):

এটিতে পরিবর্তন করুন for(; v < 2; v++)

প্রচলিত forলুপের তিনটি সংশোধক জাভাতে areচ্ছিক।

বিকল্প উদাহরণ:

নীচে while (true)লুপ হিসাবে একই :

for (;;) {

}

অতিরিক্ত বৃদ্ধি যুক্ত করা হচ্ছে:

int j = 0;
for (int k = 0; k < 10; k++, j++) {

}

লুপটি শেষ করতে অতিরিক্ত শর্ত যুক্ত করা:

int j = 0;
for (int k = 0; k < 10 || j < 10; k++, j++) {

}

একই ধরণের ভেরিয়েবলের একাধিক ঘোষণা করে :

for (int k = 0, j = 0; k < 10 || j < 10; k++, j++) {

}

এবং স্পষ্টতই আপনি এগুলির যে কোনওটিকে মিশ্রিত করতে এবং মেলাতে পারেন, আপনি যা চান তা সম্পূর্ণ রেখে।


3

জাভা ডক অনুসারে

বিবৃতি দেওয়ার জন্য সাধারণ ফর্মটি নিম্নরূপ প্রকাশ করা যেতে পারে:

for (initialization; termination; increment) {
    statement(s)
}

...

লুপের তিনটি এক্সপ্রেশন .চ্ছিক

এর মানে হল যে আপনি forলুপ তৈরি করতে পারেন এবং 3 টির কিছু অংশ খালি রেখে দিতে পারেন । int vলুপের আগে বিকল্পগুলির মধ্যে একটি ঘোষিত হয় :

int v = 0;
for(; v<2; v++)

1

আপনাকে এর মধ্যে একটি ভেরিয়েবল ঘোষণা করতে হবে না ForInit

অন্যরা যেমন উল্লেখ করেছে, আপনি কেবল বাদ দিতে পারেন ForInit; তবে আপনি সেখানে বিবৃতি প্রকাশের একটি তালিকাও ব্যবহার করতে পারেন।

উদাহরণস্বরূপ, আপনি নতুন শ্রেণীর উদাহরণ তৈরি করতে পারেন, পদ্ধতিগুলি আহ্বান করতে এবং / বৃদ্ধি / হ্রাস ভেরিয়েবলগুলি নির্ধারণ করতে পারেন:

int v;
for (new String(), "".toString(), v = 0, v++;;);

(এই উদাহরণটি অযৌক্তিক, তবে আইনী)

তবে আপনি স্থানীয় বিবরণী ঘোষণার সাথে এই বিবৃতি প্রকাশের সাথে মিশ্রিত করতে পারবেন না।



0

int w = 0;

int v;

জন্য (বনাম; বনাম <2; বনাম ++,) {

} আপনি লুপটির আগে v ঘোষণা করেছেন তবে আপনি আবার কোনও সূচনা ছাড়াই ব্যবহার করেছেন।

যদি আপনি ব্যবহার W যা ইতিমধ্যে ঘোষণা করে এবং সক্রিয়া করা হয় পূর্বে তারপর, কোড নিচে কোন issues.like থাকবে

জন্য (; W <2; W ++,) {

}

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.