উত্তর:
break
একটি লুপ ছেড়ে continue
যায়, পরবর্তী পুনরাবৃত্তিতে লাফ দেয়।
আরও বিশদ এবং কোড নমুনার জন্য ব্রাঞ্চিং বিবৃতি দেখুন :
break
ব্রেক স্টেটমেন্টের দুটি রূপ রয়েছে: লেবেলযুক্ত এবং লেবেলযুক্ত। আপনি স্যুইচ বিবৃতিটির পূর্ববর্তী আলোচনায় শিরোনামহীন ফর্মটি দেখেছেন। আপনি কিছু সময়, বা করার সময় লুপটি শেষ করতে একটি লেবেলযুক্ত বিরতিও ব্যবহার করতে পারেন [...]
একটি লেবেলযুক্ত বিরতি স্টেটমেন্ট অন্তর্নিহিত স্যুইচটি বন্ধ করে দেয়, যখন, বা করার সময় বিবৃতি দেয় তবে লেবেলযুক্ত বিরতি একটি বহিরাগত স্টেটমেন্টকে সমাপ্ত করে।
continue
চালিয়ে যাওয়া বিবৃতিটি কোনও সময়ের জন্য, বা করণীয় লুপের বর্তমান পুনরাবৃত্তিটি এড়িয়ে যায়। লেবেলযুক্ত ফর্মটি অন্তঃস্থলীয় লুপের দেহের শেষে চলে যায় এবং লুপ নিয়ন্ত্রণ করে এমন বুলিয়ান এক্সপ্রেশনটি মূল্যায়ন করে। [...]
একটি লেবেলযুক্ত চালিয়ে যাওয়া বিবৃতি প্রদত্ত লেবেলের সাথে চিহ্নিত বাইরের লুপের বর্তমান পুনরাবৃত্তিটি এড়িয়ে যায়।
System.out.println ("starting loop:");
for (int n = 0; n < 7; ++n)
{
System.out.println ("in loop: " + n);
if (n == 2) {
continue;
}
System.out.println (" survived first guard");
if (n == 4) {
break;
}
System.out.println (" survived second guard");
// continue at head of loop
}
// break out of loop
System.out.println ("end of loop or exit via break");
এটি নিম্নলিখিত আউটপুট নিয়ে যাবে:
starting loop:
in loop: 0
survived first guard
survived second guard
in loop: 1
survived first guard
survived second guard
in loop: 2
in loop: 3
survived first guard
survived second guard
in loop: 4
survived first guard
end of loop or exit via break
আপনি কোনও ব্লককে কেবলমাত্র একটি লুপের জন্যই লেবেল করতে পারেন এবং তারপরে একটি নেস্টেড ব্লক থেকে একটি বাইরের অংশে ব্রেক / চালিয়ে যেতে পারেন। কয়েকটি ক্ষেত্রে এটি কার্যকর হতে পারে তবে সাধারণভাবে আপনি এই জাতীয় কোডটি এড়াতে চেষ্টা করবেন, প্রোগ্রামটির যুক্তি বাদে নিম্নলিখিত উদাহরণের চেয়ে বোঝার চেয়ে আরও ভাল:
first:
for (int i = 0; i < 4; ++i)
{
second:
for (int j = 0; j < 4; ++j)
{
third:
for (int k = 0; k < 4; ++k)
{
System.out.println ("inner start: i+j+k " + (i + j + k));
if (i + j + k == 5)
continue third;
if (i + j + k == 7)
continue second;
if (i + j + k == 8)
break second;
if (i + j + k == 9)
break first;
System.out.println ("inner stop: i+j+k " + (i + j + k));
}
}
}
কারণ এটি সম্ভব, এর অর্থ এটি ব্যবহার করা উচিত নয়।
যদি আপনি মজাদার উপায়ে আপনার কোডটি অবলম্বন করতে চান তবে আপনি কোনও সুনির্দিষ্ট নামটি পছন্দ করেন না, তবে এইচপি: এবং একটি মন্তব্য সহ এটি অনুসরণ করুন, যা উত্স-কোডের কোনও ওয়েবড্রেসের মতো এলিয়েন বলে মনে হচ্ছে:
http://stackoverflow.com/questions/462373
for (int i = 0; i < 4; ++i)
{
if (i == 2)
break http;
আমার ধারণা এটি জোশুয়া ব্লচের কুইজল থেকে এসেছে। :)
http://stackoverflow.com/questions/462373/
খুব বেশি কাজ হবে না ?
ব্রেক লুপটিকে পুরোপুরি ছেড়ে দেয় এবং লুপের পরে বিবৃতিগুলি কার্যকর করে। যেখানে চালিয়ে যাওয়া বর্তমান পুনরাবৃত্তিটি ছেড়ে দেয় এবং লুপের পরবর্তী মান সহ কার্যকর করে।
এই কোডটি সমস্ত কিছু ব্যাখ্যা করে:
public static void main(String[] args) {
for(int i=0;i<10;i++)
{
if (i==4)
{
break;
}
System.out.print(i+"\t");
}
System.out.println();
for(int i=0;i<10;i++)
{
if (i==4)
{
continue;
}
System.out.print(i+"\t");
}
}
আউটপুট:
0 1 2 3
0 1 2 3 5 6 7 8 9
ব্রেক স্টেটমেন্ট
লুপটি সমস্ত পদক্ষেপের মানগুলি সম্পূর্ণরূপে পুনরাবৃত্তি শেষ করার আগে কখনও কখনও একটি লুপ থেকে প্রস্থান করা প্রয়োজন । উদাহরণস্বরূপ, আপনি একটি নির্দিষ্ট শর্তটি সন্তুষ্ট করে এমন একটি নম্বর না পাওয়া পর্যন্ত সংখ্যার তালিকার উপরে লুপিং। অথবা একটি নির্দিষ্ট অক্ষর না পড়া পর্যন্ত একটি ফাইল থেকে অক্ষরগুলির একটি স্ট্রিমের উপরে লুপিং।
নিম্নলিখিত উদাহরণে, আমরা 0 থেকে 9 পর্যন্ত মানগুলি মুদ্রণের জন্য লুপের জন্য একটি সাধারণ ব্যবহার করছি:
for(int i=0; i<10; i++) {
System.out.println(i);
}
আউটপুট:
0
1
2
3
4
5
6
7
8
9
এখন আমরা i == 4 এ যখন একটি ব্রেক স্টেটমেন্ট যুক্ত করি, আমি একবার 4 এর সমান হয়ে গেলে আমাদের কোডটি লুপ থেকে বিচ্ছিন্ন হয়ে যাবে You ব্রেক স্টেটমেন্টটি কেবল বর্তমান লুপ থেকে বিচ্ছিন্ন হবে। নেস্টেড ইনার লুপ থেকে বাইরের লুপটি ভেঙে ফেলার জন্য, ব্রেক স্টেটমেন্ট সহ আপনার লেবেল ব্যবহার করা দরকার।
for(int i=0; i<10; i++) {
System.out.println(i);
if(i==4) {
break;
}
}
আউটপুট:
0
1
2
3
4
বিবৃতি অবিরত করুন
জাভার ক্রমাগত বিবৃতিটি একটি লুপের বর্তমান পুনরাবৃত্তির উপর থেকে যায় এবং সরাসরি পরবর্তী পুনরাবৃত্তিতে যায়। লুপের জন্য অবিরত বিবৃতিটি কল করার পরে, লুপ এক্সিকিউশনটি পরবর্তী পুনরাবৃত্তির সাথে এগিয়ে যাওয়ার আগে ধাপের মানটি কার্যকর করবে এবং বুলিয়ান অবস্থার মূল্যায়ন করবে। নিম্নলিখিত উদাহরণে, আমরা একটি লুপে 0 থেকে 9 পর্যন্ত সমস্ত মান মুদ্রণ করছি তবে আমরা 4 প্রিন্টিংয়ের বাইরে চলে যাই।
for(int i=0; i<10; i++) {
if(i==4) {
continue;
}
System.out.println(i);
}
আউটপুট:
0
1
2
3
5 <---- SKIPPED OVER 4 and continued with next loop iteration
6
7
8
9
লুপ লেবেল - ব্রেক স্টেটমেন্ট আপনি কোনও অভ্যন্তরীণ লুপটি ভেঙে ফেলার পরে নির্বাহীকরণটি চালিয়ে যেতে চান তা নির্দিষ্ট করে আপনি নেস্টেড লুপগুলির মধ্যে লেবেল ব্যবহার করতে পারেন । সাধারণত, ব্রেক স্টেটমেন্টটি কেবলমাত্র অন্তঃস্থলীয় লুপ থেকে বিচ্ছিন্ন হয়ে যায় তাই আপনি যখন কোনও বাহ্যিক লুপটি ভেঙে ফেলতে চান, আপনি এটি সম্পাদন করতে লেবেলগুলি ব্যবহার করতে পারেন, মূলত গোটো স্টেটমেন্টের অনুরূপ কিছু করে।
নীচের উদাহরণে 3 টি লুপ ব্যবহার করা হয়, সমস্ত একে অপরের মধ্যে বাসা বাঁধে। যেহেতু বাইরের সর্বাধিক লুপটির অভ্যন্তরীণ লুপটি সম্পূর্ণরূপে বিচ্ছিন্ন হওয়ার কোনও উপায় নেই, তাই আমরা এটি সম্পাদন করতে "ব্রেক 1" লেবেলটি ব্যবহার করতে পারি এবং ব্রেক স্টেটমেন্টের পাশের লেবেলটি নির্দিষ্ট করতে পারি।
outer1:
for(int i=0; i<5; i++) {
for(int j=0; j<4; j++) {
for(int k=0; k<2; k++) {
System.out.println("[" + i + "][" + j + "][" + k + "]");
if(j == 3) {
break outer1;
}
}
}
}
আউটপুট:
[0][0][0]
[0][0][1]
[0][1][0]
[0][1][1]
[0][2][0]
[0][2][1]
[0][3][0]
লক্ষ্য করুন যে শেষ লাইনটি কীভাবে প্রদর্শিত হয়েছে " 0 [0]" যেখানে j == 3 এবং সেখানেই আমরা "ব্রেক আউটআর 1" বলেছি; বাইরের সর্বাধিক লুপ থেকে বিরতি।
লুপ লেবেল - বিবৃতি অবিরত করুন
আপনি নির্দিষ্ট বিন্দু থেকে লুপিং চালিয়ে যেতে চালিয়ে যাওয়া কীওয়ার্ড সহ লেবেলগুলিও ব্যবহার করতে পারেন। পূর্ববর্তী উদাহরণটি গ্রহণ করা এবং continue outer1;
পরিবর্তে নির্দিষ্ট করার জন্য একটি লাইন পরিবর্তন করা break outer1;
লুপটি outer1
ভেঙে ফেলার পরিবর্তে লেবেল থেকে লুপিং চালিয়ে যেতে পারে । প্রতিটি সময়কে continue outer1;
কীভাবে ডাকা হয় তা নোট করুন , কোডটি বাহ্যিক লুপ থেকে লুপ সূচকে i দ্বারা 1 বাড়িয়ে দেওয়ার পরে অবিরত থাকে।
outer1:
for(int i=0; i<5; i++) {
for(int j=0; j<4; j++) {
for(int k=0; k<2; k++) {
System.out.println("[" + i + "][" + j + "][" + k + "]");
if(j == 3) {
continue outer1;
}
}
}
[0][0][0]
[0][0][1]
[0][1][0]
[0][1][1]
[0][2][0]
[0][2][1]
[0][3][0] <---- CONTINUE WITH LABEL CALLED HERE
[1][0][0] <---- CONTINUES FROM NEXT ITERATION OF OUTER LOOP
[1][0][1]
[1][1][0]
[1][1][1]
[1][2][0]
[1][2][1]
[1][3][0] <---- CONTINUE WITH LABEL CALLED HERE
[2][0][0] <---- CONTINUES FROM NEXT ITERATION OF OUTER LOOP
[2][0][1]
[2][1][0]
[2][1][1]
[2][2][0]
[2][2][1]
[2][3][0] <---- CONTINUE WITH LABEL CALLED HERE
[3][0][0] <---- CONTINUES FROM NEXT ITERATION OF OUTER LOOP
[3][0][1]
[3][1][0]
[3][1][1]
[3][2][0]
[3][2][1]
[3][3][0] <---- CONTINUE WITH LABEL CALLED HERE
[4][0][0] <---- CONTINUES FROM NEXT ITERATION OF OUTER LOOP
[4][0][1]
[4][1][0]
[4][1][1]
[4][2][0]
[4][2][1]
[4][3][0]
দুর্দান্ত উত্তর সহজ এবং নির্ভুল।
আমি একটি কোডের নমুনা যুক্ত করব।
C:\oreyes\samples\java\breakcontinue>type BreakContinue.java
class BreakContinue {
public static void main( String [] args ) {
for( int i = 0 ; i < 10 ; i++ ) {
if( i % 2 == 0) { // if pair, will jump
continue; // don't go to "System.out.print" below.
}
System.out.println("The number is " + i );
if( i == 7 ) {
break; // will end the execution, 8,9 wont be processed
}
}
}
}
C:\oreyes\samples\java\breakcontinue>java BreakContinue
The number is 1
The number is 3
The number is 5
The number is 7
continue
বর্তমান নির্বাহ অগ্রাহ্য লুপ এবং চলে আসে পরবর্তী লুপ যেহেতু break
আউট প্যাচসমূহ এর লুপ এবং পরবর্তী বিবৃতি executes পর লুপ। আমি নিম্নলিখিত কোড ব্যবহার করে পার্থক্য শিখেছি। বিভিন্ন আউটপুট দেখুন H আশা করি এটি সাহায্য করে।
public static void main(String[] args) {
for(int i = 0; i < 5; i++){
if (i == 3) {
continue;
}
System.out.print(i);
}
}//prints out 0124, continue moves to the next iteration skipping printing 3
public static void main(String[] args) {
for(int i = 0; i < 5; i++){
if (i == 3) {
break;
}
System.out.print(i);
}
}//prints out 012, break moves out of the loop hence doesnt print 3 and 4
নিম্নোক্ত বিবেচনা কর:
int n;
for(n = 0; n < 10; ++n) {
break;
}
System.out.println(n);
বিরতির ফলে লুপটি শেষ হয়ে যায় এবং n এর মান 0 হয়।
int n;
for(n = 0; n < 10; ++n) {
continue;
}
System.out.println(n);
চালিয়ে যাওয়ার ফলে প্রোগ্রামের কাউন্টারটি লুপের প্রথম লাইনে ফিরে আসে (শর্তটি পরীক্ষা করা হয় এবং এন এর মান বৃদ্ধি হয়) এবং এন এর চূড়ান্ত মান 10 হয়।
এটিও লক্ষ করা উচিত যে বিরতি কেবলমাত্র এর মধ্যে থাকা লুপটির সম্পাদন বন্ধ করে দেয়:
int m;
for(m = 0; m < 5; ++m)
{
int n;
for(n = 0; n < 5; ++n) {
break;
}
System.out.println(n);
}
System.out.println(m);
এর প্রভাব কিছু আউটপুট হবে
0
0
0
0
0
5
break
গোষ্ঠীর বাইরে বিবৃতি বিরতি (পরবর্তী বিবৃতি নিষ্পন্ন করা হবে ক্লোজিং বক্রবন্ধনী পরে প্রথম এক হয়) যখন continue
শুরু হয় পরবর্তী পুনরাবৃত্তিতে ধরে লুপ।
সাধারণ উদাহরণ:
break
লুপ ছেড়ে যায়
int m = 0;
for(int n = 0; n < 5; ++n){
if(n == 2){
break;
}
m++;
}
System.out.printl("m:"+m); // m:2
continue
লুপ শুরু করতে ফিরে যাবে।
int m = 0;
for(int n = 0; n < 5; ++n){
if(n == 2){
continue; // Go back to start and dont execute m++
}
m++;
}
System.out.printl("m:"+m); // m:4
কোনও শর্ত পূরণ হলে মৃত্যুদণ্ড কার্যকর হওয়া থেকে রোধ করার জন্য যদি কেউ শর্ত পূরণ করে তবে লুপ থেকে বেরিয়ে আসার জন্য ব্রেক ব্যবহার করা উচিত।
উদাহরণস্বরূপ নীচে উল্লিখিত কোডে।
for(int i=0;i<5;i++){
if(i==3){
continue;
}
System.out.println(i);
}
উপরের কোড ফলাফল মুদ্রণ করবে: 0 1 2 4
এই কোডটি এখনই বিবেচনা করুন
for(int i=0;i<5;i++){
if(i==3){
break;
}
System.out.println(i);
}
এই কোড 0 1 2 মুদ্রণ করবে
এটি অবিরত এবং বিরতির প্রাথমিক পার্থক্য।
বিরতি এর অর্থসূত্র এখানে:
int[] a = new int[] { 1, 3, 4, 6, 7, 9, 10 };
// find 9
for(int i = 0; i < a.Length; i++)
{
if (a[i] == 9)
goto goBreak;
Console.WriteLine(a[i].ToString());
}
goBreak:;
এখানে অবিরত অর্থাত:
int[] a = new int[] { 1, 3, 4, 6, 7, 9, 10 };
// skip all odds
for(int i = 0; i < a.Length; i++)
{
if (a[i] % 2 == 1)
goto goContinue;
Console.WriteLine(a[i].ToString());
goContinue:;
}
প্রথমত, আমি মনে করি আপনার জানা উচিত যে জাভাতে দুটি ধরণের বিরতি রয়েছে এবং অবিরত থাকে যা লেবেল বিরতি, লেবেলযুক্ত বিরতি, লেবেলযুক্ত চালিয়ে যান এবং লেবেলযুক্ত চালিয়ে যাওয়া হয় N এখন, আমি তাদের মধ্যে পার্থক্য সম্পর্কে কথা বলব।
class BreakDemo {
public static void main(String[] args) {
int[] arrayOfInts =
{ 32, 87, 3, 589,
12, 1076, 2000,
8, 622, 127 };
int searchfor = 12;
int i;
boolean foundIt = false;
for (i = 0; i < arrayOfInts.length; i++) {
if (arrayOfInts[i] == searchfor) {
foundIt = true;
break;//this is an unlabeled break,an unlabeled break statement terminates the innermost switch,for,while,do-while statement.
}
}
if (foundIt) {
System.out.println("Found " + searchfor + " at index " + i);
} else {
System.out.println(searchfor + " not in the array");
}
}
একটি লেবেলযুক্ত ব্রেক স্টেটমেন্ট অন্তরতমতম স্যুইচটি সমাপ্ত করে, কিছুক্ষণের জন্য, যখন-করতে হবে বিবৃতি।
public class BreakWithLabelDemo {
public static void main(String[] args) {
search:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
System.out.println(i + " - " + j);
if (j == 3)
break search;//this is an labeled break.To notice the lab which is search.
}
}
}
একটি লেবেলযুক্ত বিরতি একটি বাহ্যিক স্টেটমেন্ট বন্ধ করে দেয় if যদি আপনি জাভ্যাক এবং জাভা এই ডেমোটি পান, আপনি পাবেন:
0 - 0
0 - 1
0 - 2
0 - 3
class ContinueDemo {
public static void main(String[] args) {
String searchMe = "peter piper picked a " + "peck of pickled peppers";
int max = searchMe.length();
int numPs = 0;
for (int i = 0; i < max; i++) {
// interested only in p's
if (searchMe.charAt(i) != 'p')
continue;//this is an unlabeled continue.
// process p's
numPs++;
}
System.out.println("Found " + numPs + " p's in the string.");
}
বিনা লেবেলযুক্ত চালিয়ে যাওয়া বিবৃতিটি এডের বর্তমান পুনরাবৃত্তিটি এড়িয়ে যায়, যখন করণীয়-বিবৃতি।
public class ContinueWithLabelDemo {
public static void main(String[] args) {
search:
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 5; j++) {
System.out.println(i + " - " + j);
if (j == 3)
continue search;//this is an labeled continue.Notice the lab which is search
}
}
}
একটি লেবেলযুক্ত চালিয়ে যাওয়া বিবৃতি প্রদত্ত লেবেলের সাথে চিহ্নিত বাইরের লুপের বর্তমান পুনরাবৃত্তিটি এড়িয়ে যায়, যদি আপনি জাভ্যাক এবং জাভা ডেমো করেন তবে আপনি পাবেন:
0 - 0
0 - 1
0 - 2
0 - 3
1 - 0
1 - 1
1 - 2
1 - 3
2 - 0
2 - 1
2 - 2
2 - 3
আপনার যদি কোনও প্রশ্ন থাকে তবে আপনি এর জাভা টিউটোরিয়াল দেখতে পারেন: লিঙ্কের বিবরণ এখানে লিখুন enter
সোজা কথায়: বিরতি বর্তমান লুপটি শেষ করবে এবং লুপ শেষ হওয়ার পরে প্রথম লাইনে সম্পাদন চালিয়ে যাবে। লুপ অবস্থাতে ফিরে আসে এবং লুপটি চালিয়ে যায়।
অবিরত এবং বিরতির মধ্যে পার্থক্য বোঝার জন্য সহজ প্রোগ্রাম
কখন continue
ব্যবহৃত হয়
public static void main(String[] args) {
System.out.println("HelloWorld");
for (int i = 0; i < 5; i++){
System.out.println("Start For loop i = " + i);
if(i==2){
System.out.println("Inside if Statement for i = "+i);
continue;
}
System.out.println("End For loop i = " + i);
}
System.out.println("Completely out of For loop");
}
OutPut:
HelloWorld
Start For loop i = 0
End For loop i = 0
Start For loop i = 1
End For loop i = 1
Start For loop i = 2
Inside if Statement for i = 2
Start For loop i = 3
End For loop i = 3
Start For loop i = 4
End For loop i = 4
Completely out of For loop
কখন break
ব্যবহৃত হয়
public static void main(String[] args) {
System.out.println("HelloWorld");
for (int i = 0; i < 5; i++){
System.out.println("Start For loop i = " + i);
if(i==2){
System.out.println("Inside if Statement for i = "+i);
break;
}
System.out.println("End For loop i = " + i);
}
System.out.println("Completely out of For loop");
}
Output:
HelloWorld
Start For loop i = 0
End For loop i = 0
Start For loop i = 1
End For loop i = 1
Start For loop i = 2
Inside if Statement for i = 2
Completely out of For loop
স্টেটমেন্ট চালিয়ে যান ইট্রেশন বন্ধ করুন এবং পরবর্তী প্রসারিত প্রারম্ভিক:
System.out.println("continue when i is 2:");
for (int i = 1; i <= 3; i++) {
if (i == 2) {
System.out.print("[continue]");
continue;
}
System.out.print("[i:" + i + "]");
}
এবং ব্রেক স্টেটমেন্ট লুপটি থামান বা লুপ থেকে প্রস্থান করুন
সুতরাং আপনি লুপের জন্য বা এর ভিতরে রয়েছেন। বিরতি ব্যবহার; আপনাকে লুপের বাইরে রাখবে। হিসাবে, এটি শেষ হবে। চালিয়ে; পরের পুনরাবৃত্তিটি চালাতে বলবে।
যদি বিবৃতি অবিরত ব্যবহার না করে কোন লাভ নেই, তবে বিরতি; দরকারী. স্যুইচ ... ক্ষেত্রে, সর্বদা বিরতি ব্যবহার করুন; একটি মামলা শেষ করতে, যাতে এটি অন্য কেস কার্যকর করে না।
if
কোনও লুপের ভিতরে না থাকে তবে এই ক্ষেত্রে প্রচুর পয়েন্ট রয়েছে।