Java Control Statements | Control Flow in Java

জাভা কন্ট্রোল স্টেটমেন্ট | জাভাতে প্রবাহ নিয়ন্ত্রণ করুন:

জাভা কম্পাইলার উপরে থেকে নীচে কোড চালায়। কোডের বিবৃতিগুলি যে ক্রমানুসারে প্রদর্শিত হয় সে অনুযায়ী কার্যকর করা হয়। যাইহোক, জাভা বিবৃতি প্রদান করে যা জাভা কোডের প্রবাহ নিয়ন্ত্রণ করতে ব্যবহার করা যেতে পারে। এই ধরনের বিবৃতি নিয়ন্ত্রণ প্রবাহ বিবৃতি বলা হয়. এটি জাভার মৌলিক বৈশিষ্ট্যগুলির মধ্যে একটি, যা প্রোগ্রামের একটি মসৃণ প্রবাহ প্রদান করে।

জাভা তিন ধরনের নিয়ন্ত্রণ প্রবাহ বিবৃতি প্রদান করে।

  1. Decision Making statements
    • if statements
    • switch statement
  2. Loop statements
    • do while loop
    • while loop
    • for loop
    • for-each loop
  3. Jump statements
    • break statement
    • continue statement

সিদ্ধান্ত গ্রহণের বিবৃতি:

নাম অনুসারে, সিদ্ধান্ত গ্রহণের বিবৃতিগুলি সিদ্ধান্ত নেয় কোন বিবৃতিটি কার্যকর করতে হবে এবং কখন। সিদ্ধান্ত গ্রহণের বিবৃতি বুলিয়ান অভিব্যক্তি মূল্যায়ন করে এবং প্রদত্ত শর্তের ফলাফলের উপর নির্ভর করে প্রোগ্রাম প্রবাহ নিয়ন্ত্রণ করে। জাভাতে দুই ধরনের সিদ্ধান্ত গ্রহণের বিবৃতি রয়েছে, যেমন, ইফ স্টেটমেন্ট এবং সুইচ স্টেটমেন্ট।

1) যদি বিবৃতি:

জাভাতে, “if" বিবৃতিটি একটি শর্ত মূল্যায়ন করতে ব্যবহৃত হয়। প্রোগ্রামের নিয়ন্ত্রণ নির্দিষ্ট অবস্থার উপর নির্ভর করে সরানো হয়। If স্টেটমেন্টের শর্ত একটি বুলিয়ান মান দেয়, হয় সত্য বা মিথ্যা। জাভাতে, চার ধরনের if-স্টেটমেন্ট নিচে দেওয়া আছে।

  1. সরল যদি বিবৃতি
  2. if-else বিবৃতি
  3. if-else-যদি মই
  4. নেস্টেড যদি-বিবৃতি

চলুন এক এক করে যদি-বিবৃতিগুলো বুঝ।

1) সরল যদি বিবৃতি:

এটি জাভাতে সমস্ত নিয়ন্ত্রণ প্রবাহ বিবৃতিগুলির মধ্যে সবচেয়ে মৌলিক বিবৃতি। এটি একটি বুলিয়ান এক্সপ্রেশন মূল্যায়ন করে এবং এক্সপ্রেশনটি সত্য হলে প্রোগ্রামটিকে কোডের একটি ব্লক প্রবেশ করতে সক্ষম করে।

if স্টেটমেন্টের সিনট্যাক্স নিচে দেওয়া হল।

  1. if(condition) {    
  2. statement 1//executes when condition is true   
  3. }    

নিচের উদাহরণটি বিবেচনা করুন যেখানে আমরা জাভা কোডে if স্টেটমেন্ট ব্যবহার করেছি।

ছাত্র.জাভা

ছাত্র.জাভা

  1. public class Student {    
  2. public static void main(String[] args) {    
  3. int x = 10;    
  4. int y = 12;    
  5. if(x+y > 20) {    
  6. System.out.println(“x + y is greater than 20");    
  7. }    
  8. }      
  9. }     

আউটপুট:

x + y is greater than 20

2) if-else বিবৃতি:

if-else স্টেটমেন্ট হল if-স্টেটমেন্টের একটি এক্সটেনশন, যা কোডের অন্য ব্লক ব্যবহার করে, যেমন, else ব্লক। যদি if-ব্লকের শর্ত মিথ্যা হিসাবে মূল্যায়ন করা হয় তাহলে else ব্লকটি কার্যকর করা হয়।

বাক্য গঠন:

  1. if(condition) {    
  2. statement 1//executes when condition is true   
  3. }  
  4. else{  
  5. statement 2//executes when condition is false   
  6. }  

নিম্নলিখিত উদাহরণ বিবেচনা করুন.

ছাত্র.জাভা

  1. public class Student {  
  2. public static void main(String[] args) {  
  3. int x = 10;  
  4. int y = 12;  
  5. if(x+y < 10) {  
  6. System.out.println(“x + y is less than      10");  
  7. }   else {  
  8. System.out.println(“x + y is greater than 20");  
  9. }  
  10. }  
  11. }  

আউটপুট:

x + y is greater than 20

3) if-else-if মই:

if-else-if স্টেটমেন্টে if-statement এর পরে একাধিক else-if স্টেটমেন্ট থাকে। অন্য কথায়, আমরা বলতে পারি যে এটি if-else স্টেটমেন্টের চেইন যা একটি সিদ্ধান্তের গাছ তৈরি করে যেখানে প্রোগ্রামটি কোডের ব্লকে প্রবেশ করতে পারে যেখানে শর্তটি সত্য। আমরা চেইনের শেষে আরেকটি বিবৃতিও সংজ্ঞায়িত করতে পারি।

if-else-if স্টেটমেন্টের সিনট্যাক্স নিচে দেওয়া হল।

  1. if(condition 1) {    
  2. statement 1//executes when condition 1 is true   
  3. }  
  4. else if(condition 2) {  
  5. statement 2//executes when condition 2 is true   
  6. }  
  7. else {  
  8. statement 2//executes when all the conditions are false   
  9. }  

নিম্নলিখিত উদাহরণ বিবেচনা করুন.

ছাত্র.জাভা

  1. public class Student {  
  2. public static void main(String[] args) {  
  3. String city = “Delhi";  
  4. if(city == “Meerut") {  
  5. System.out.println(“city is meerut");  
  6. }else if (city == “Noida") {  
  7. System.out.println(“city is noida");  
  8. }else if(city == “Agra") {  
  9. System.out.println(“city is agra");  
  10. }else {  
  11. System.out.println(city);  
  12. }  
  13. }  
  14. }  

আউটপুট:

Delhi 

4. নেস্টেড যদি-বিবৃতি:

নেস্টেড যদি-বিবৃতিতে, if স্টেটমেন্টে একটি if বা if-else স্টেটমেন্ট থাকতে পারে অন্য if বা else-if স্টেটমেন্টের ভিতরে।

Nested if-statement এর সিনট্যাক্স নিচে দেওয়া হল।

  1. if(condition 1) {    
  2. statement 1//executes when condition 1 is true   
  3. if(condition 2) {  
  4. statement 2//executes when condition 2 is true   
  5. }  
  6. else{  
  7. statement 2//executes when condition 2 is false   
  8. }  
  9. }  

নিম্নলিখিত উদাহরণ বিবেচনা করুন.

ছাত্র.জাভা

  1. public class Student {    
  2. public static void main(String[] args) {    
  3. String address = “Delhi, India";    
  4.     
  5. if(address.endsWith(“India")) {    
  6. if(address.contains(“Meerut")) {    
  7. System.out.println(“Your city is Meerut");    
  8. }else if(address.contains(“Noida")) {    
  9. System.out.println(“Your city is Noida");    
  10. }else {    
  11. System.out.println(address.split(“,")[0]);    
  12. }    
  13. }else {    
  14. System.out.println(“You are not living in India");    
  15. }    
  16. }    
  17. }    

আউটপুট:

Delhi

বিবৃতি পরিবর্তন করুন:

জাভাতে, সুইচ স্টেটমেন্টগুলো if-else-if স্টেটমেন্টের মতো। সুইচ স্টেটমেন্টে কেস নামক কোডের একাধিক ব্লক রয়েছে এবং যে পরিবর্তনশীল পরিবর্তন করা হচ্ছে তার উপর ভিত্তি করে একটি একক কেস কার্যকর করা হয়। if-else-if স্টেটমেন্টের পরিবর্তে সুইচ স্টেটমেন্ট ব্যবহার করা সহজ। এটি প্রোগ্রামের পঠনযোগ্যতাও বাড়ায়।

সুইচ স্টেটমেন্ট সম্পর্কে উল্লেখ্য বিষয়গুলি:

  • কেস ভেরিয়েবল হতে পারে int, সংক্ষিপ্ত, বাইট, char, বা গণনা। জাভা সংস্করণ 7 থেকে স্ট্রিং টাইপও সমর্থিতকেস ডুপ্লিকেট করা যাবে না
  • ডিফল্ট বিবৃতি কার্যকর করা হয় যখন কোনো ক্ষেত্রে অভিব্যক্তির মানের সাথে মেলে না। এটা ঐচ্ছিক।
  • শর্ত সন্তুষ্ট হলে ব্রেক স্টেটমেন্ট সুইচ ব্লক বন্ধ করে দেয়।
  • এটি ঐচ্ছিক, যদি ব্যবহার না করা হয়, পরবর্তী মামলাটি কার্যকর করা হয়।
  • সুইচ স্টেটমেন্ট ব্যবহার করার সময়, আমাদের অবশ্যই লক্ষ্য করতে হবে যে কেস এক্সপ্রেশনটি ভেরিয়েবলের মতো একই ধরনের হবে। যাইহোক, এটি একটি ধ্রুবক মান হবে।

সুইচ স্টেটমেন্ট ব্যবহার করার জন্য সিনট্যাক্স নিচে দেওয়া হল।

  1. switch (expression){  
  2.     case value1:  
  3.      statement1;  
  4.      break;  
  5.     .  
  6.     .  
  7.     .  
  8.     case valueN:  
  9.      statementN;  
  10.      break;  
  11.     default:  
  12.      default statement;  
  13. }  

সুইচ স্টেটমেন্টের প্রবাহ বোঝার জন্য নিচের উদাহরণটি বিবেচনা করুন।

ছাত্র.জাভা

  1. public class Student implements Cloneable {  
  2. public static void main(String[] args) {  
  3. int num = 2;  
  4. switch (num){  
  5. case 0:  
  6. System.out.println(“number is 0");  
  7. break;  
  8. case 1:  
  9. System.out.println(“number is 1");  
  10. break;  
  11. default:  
  12. System.out.println(num);  
  13. }  
  14. }  
  15. }  

আউটপুট:

2

সুইচ স্টেটমেন্ট ব্যবহার করার সময়, আমাদের অবশ্যই লক্ষ্য করতে হবে যে কেস এক্সপ্রেশনটি ভেরিয়েবলের মতো একই ধরনের হবে। যাইহোক, এটি একটি ধ্রুবক মান হবে। সুইচ শুধুমাত্র int, স্ট্রিং এবং Enum টাইপ ভেরিয়েবল ব্যবহার করার অনুমতি দেয়।

লুপ স্টেটমেন্ট

প্রোগ্রামিং-এ, কখনও কখনও আমাদের কোডের ব্লক বারবার কার্যকর করতে হয় যখন কিছু শর্ত সত্যে মূল্যায়ন করে। যাইহোক, লুপ স্টেটমেন্ট বারবার ক্রমানুসারে নির্দেশাবলীর সেট চালানোর জন্য ব্যবহার করা হয়। নির্দেশাবলীর সেট কার্যকর করা একটি নির্দিষ্ট অবস্থার উপর নির্ভর করে।

জাভাতে, আমাদের কাছে তিন ধরণের লুপ রয়েছে যা একইভাবে কার্যকর করে। যাইহোক, তাদের সিনট্যাক্স এবং অবস্থা পরীক্ষা করার সময় পার্থক্য আছে।

  1. লুপের জন্য
  2. যখন লুপ
  3. do-while লুপ

লুপ স্টেটমেন্টগুলো একে একে বুঝুন।

লুপের জন্য জাভা

জাভাতে, ফর লুপ সি এবং সি++ এর মতো। এটি আমাদেরকে লুপ ভেরিয়েবল শুরু করতে, কন্ডিশন চেক করতে এবং কোডের একক লাইনে ইনক্রিমেন্ট/ডিক্রিমেন্ট করতে সক্ষম করে। আমরা ফর লুপ তখনই ব্যবহার করি যখন আমরা ঠিক কতবার জানি, আমরা কোডের ব্লক এক্সিকিউট করতে চাই।

  1. for(initialization, condition, increment/decrement) {    
  2. //block of statements    
  3. }    

লুপের জন্য ফ্লো চার্ট নিচে দেওয়া হল।

জাভাতে ফর লুপের সঠিক কার্যকারিতা বোঝার জন্য নিম্নলিখিত উদাহরণটি বিবেচনা করুন।

হিসাব.জাভা

  1. public class Calculattion {  
  2. public static void main(String[] args) {  
  3. // TODO Auto-generated method stub  
  4. int sum = 0;  
  5. for(int j = 1; j<=10; j++) {  
  6. sum = sum + j;  
  7. }  
  8. System.out.println(“The sum of first 10 natural numbers is “ + sum);  
  9. }  
  10. }  

আউটপুট:

The sum of first 10 natural numbers is 55

প্রতিটি লুপের জন্য জাভা:

জাভা অ্যারে বা সংগ্রহের মতো ডেটা স্ট্রাকচারগুলিকে অতিক্রম করার জন্য লুপের জন্য একটি উন্নত প্রদান করে। প্রতিটি লুপে, আমাদের লুপ ভেরিয়েবল আপডেট করার দরকার নেই। java-এ প্রতিটি লুপ ব্যবহারের জন্য সিনট্যাক্স নিচে দেওয়া হল।

  1. for(data_type var : array_name/collection_name){    
  2. //statements    
  3. }    

জাভাতে প্রতিটি লুপের কার্যকারিতা বোঝার জন্য নিম্নলিখিত উদাহরণটি বিবেচনা করুন।

হিসাব.জাভা

  1. public class Calculation {    
  2. public static void main(String[] args) {    
  3. // TODO Auto-generated method stub    
  4. String[] names = {“Java",“C",“C++",“Python",“JavaScript"};    
  5. System.out.println(“Printing the content of the array names:n");    
  6. for(String name:names) {    
  7. System.out.println(name);    
  8. }    
  9. }    
  10. }    

আউটপুট:

Printing the content of the array names:

Java
C
C++
Python
JavaScript

জাভা যখন লুপ:

যখন লুপটি একাধিকবার স্টেটমেন্টের সংখ্যার উপর পুনরাবৃত্তি করতে ব্যবহৃত হয়। যাইহোক, যদি আমরা আগে থেকে পুনরাবৃত্তির সংখ্যা না জানি, তবে একটি সময় লুপ ব্যবহার করার পরামর্শ দেওয়া হয়। লুপের বিপরীতে, যখন লুপের মধ্যে লুপ স্টেটমেন্টের ভিতরে ইনক্রিমেন্ট এবং ইনক্রিমেন্ট/ডিক্রিমেন্ট ঘটে না।

এটি এন্ট্রি-নিয়ন্ত্রিত লুপ হিসাবেও পরিচিত কারণ লুপের শুরুতে শর্তটি পরীক্ষা করা হয়। যদি শর্তটি সত্য হয়, তাহলে লুপ বডিটি কার্যকর করা হবে; অন্যথায়, লুপের পরে বিবৃতি কার্যকর করা হবে।

while লুপের সিনট্যাক্স নিচে দেওয়া হল।

  1. while(condition){    
  2. //looping statements    
  3. }    

যখন লুপের ফ্লো চার্ট নিচের ছবিতে দেওয়া আছে।

নিম্নলিখিত উদাহরণ বিবেচনা করুন.

গণনা .java

  1. public class Calculation {    
  2. public static void main(String[] args) {    
  3. // TODO Auto-generated method stub    
  4. int i = 0;    
  5. System.out.println(“Printing the list of first 10 even numbers n");    
  6. while(i<=10) {    
  7. System.out.println(i);    
  8. i = i + 2;    
  9. }    
  10. }    
  11. }    

আউটপুট:

Printing the list of first 10 even numbers 

0
2
4
6
8
10

জাভা do-while লুপ:

do-while লুপ লুপ স্টেটমেন্ট এক্সিকিউট করার পর লুপের শেষে কন্ডিশন চেক করে। যখন পুনরাবৃত্তির সংখ্যা জানা নেই এবং আমাদের অন্তত একবার লুপ চালাতে হবে, তখন আমরা do-while লুপ ব্যবহার করতে পারি।

এটি প্রস্থান-নিয়ন্ত্রিত লুপ হিসাবেও পরিচিত কারণ শর্তটি আগে থেকে পরীক্ষা করা হয় না। do-while লুপের সিনট্যাক্স নিচে দেওয়া হল।

  1. do     
  2. {    
  3. //statements    
  4. while (condition);    

Do-while লুপের ফ্লো চার্ট নিচের ছবিতে দেওয়া আছে।

Java এ do-while লুপের কার্যকারিতা বোঝার জন্য নিম্নলিখিত উদাহরণটি বিবেচনা করুন।

হিসাব.জাভা

  1. public class Calculation {    
  2. public static void main(String[] args) {    
  3. // TODO Auto-generated method stub    
  4. int i = 0;    
  5. System.out.println(“Printing the list of first 10 even numbers n");    
  6. do {    
  7. System.out.println(i);    
  8. i = i + 2;    
  9. }while(i<=10);    
  10. }    
  11. }    

আউটপুট:

Printing the list of first 10 even numbers 
0
2
4
6
8
10

ঝাঁপ দাও বিবৃতি:

জাম্প স্টেটমেন্টগুলি নির্দিষ্ট স্টেটমেন্টে প্রোগ্রামের নিয়ন্ত্রণ স্থানান্তর করতে ব্যবহৃত হয়। অন্য কথায়, জাম্প স্টেটমেন্টগুলি এক্সিকিউশন কন্ট্রোলকে প্রোগ্রামের অন্য অংশে স্থানান্তর করে। জাভাতে দুই ধরনের জাম্প স্টেটমেন্ট আছে, অর্থাৎ ব্রেক এবং কন্টিনিউ।

জাভা বিরতি বিবৃতি:

নাম অনুসারে, ব্রেক স্টেটমেন্টটি প্রোগ্রামের বর্তমান প্রবাহকে ভাঙতে এবং লুপ বা সুইচ স্টেটমেন্টের বাইরে পরবর্তী স্টেটমেন্টে নিয়ন্ত্রণ স্থানান্তর করতে ব্যবহৃত হয়। যাইহোক, এটি নেস্টেড লুপের ক্ষেত্রে শুধুমাত্র অভ্যন্তরীণ লুপটি ভেঙে দেয়।

ব্রেক স্টেটমেন্ট জাভা প্রোগ্রামে স্বাধীনভাবে ব্যবহার করা যায় না, অর্থাৎ, এটি শুধুমাত্র লুপ বা সুইচ স্টেটমেন্টের ভিতরে লেখা যেতে পারে।

লুপের জন্য ব্রেক স্টেটমেন্টের উদাহরণ

নিচের উদাহরণটি বিবেচনা করুন যেখানে আমরা for লুপের সাথে বিরতি বিবৃতি ব্যবহার করেছি।

BreakExample.java

  1. public class BreakExample {  
  2.   
  3. public static void main(String[] args) {  
  4. // TODO Auto-generated method stub  
  5. for(int i = 0; i<= 10; i++) {  
  6. System.out.println(i);  
  7. if(i==6) {  
  8. break;  
  9. }  
  10. }  
  11. }  
  12. }  

আউটপুট:

0
1
2
3
4
5
6

লুপের জন্য লেবেলযুক্ত ব্রেক স্টেটমেন্ট উদাহরণ

গণনা.জাভা

  1. public class Calculation {    
  2.     
  3. public static void main(String[] args) {    
  4. // TODO Auto-generated method stub    
  5. a:    
  6. for(int i = 0; i<= 10; i++) {    
  7. b:    
  8. for(int j = 0; j<=15;j++) {    
  9. c:    
  10. for (int k = 0; k<=20; k++) {    
  11. System.out.println(k);    
  12. if(k==5) {    
  13. break a;    
  14. }    
  15. }    
  16. }    
  17.     
  18. }    
  19. }    
  20.     
  21.     
  22. }    

আউটপুট:

0
1
2
3
4
5

জাভা অবিরত বিবৃতি:

ব্রেক স্টেটমেন্টের বিপরীতে, কন্টিনিউ স্টেটমেন্ট লুপ ভাঙে না, যেখানে, এটি লুপের নির্দিষ্ট অংশকে এড়িয়ে যায় এবং লুপের পরবর্তী পুনরাবৃত্তিতে অবিলম্বে চলে যায়।

জাভাতে অবিরত বিবৃতিটির কার্যকারিতা বোঝার জন্য নিম্নলিখিত উদাহরণটি বিবেচনা করুন।

  1. public class ContinueExample {  
  2.   
  3. public static void main(String[] args) {  
  4. // TODO Auto-generated method stub  
  5.   
  6. for(int i = 0; i<= 2; i++) {  
  7.   
  8. for (int j = i; j<=5; j++) {  
  9.   
  10. if(j == 4) {  
  11. continue;  
  12. }  
  13. System.out.println(j);  
  14. }  
  15. }  
  16. }  
  17.   
  18. }  

আউটপুট:

0
1
2
3
5
1
2
3
5
2
3
5


Leave a Reply