Control Statements এবং Looping

জাভা ইন্টারভিউ প্রশ্ন (Java Interview Questions) - Java Technologies

448

Java তে Control Statements এবং Looping অন্যতম গুরুত্বপূর্ণ ধারণা। এটি জাভা প্রোগ্রামিং ভাষার ভিত্তি এবং যে কোনো জাভা ইন্টারভিউতে এগুলি সম্পর্কিত প্রশ্ন আসা স্বাভাবিক। এখানে কিছু সাধারণ প্রশ্ন এবং উত্তর দেওয়া হলো যা Java Control Statements এবং Looping এর উপর ভিত্তি করে।

Control Statements এর উপর প্রশ্ন:

  1. Control Statements কী? Java তে কত ধরনের control statements আছে?
    • উত্তর: Control statements এমন নির্দেশাবলী যা প্রোগ্রামের ফ্লো নিয়ন্ত্রণ করে। Java তে তিন ধরনের control statements আছে:
      • Decision-Making Statements (যেমন: if, if-else, switch)
      • Looping Statements (যেমন: for, while, do-while)
      • Jump Statements (যেমন: break, continue, return)
  2. if এবং if-else এর মধ্যে পার্থক্য কী?
    • উত্তর:

      • if: এটি একটি শর্তের ভিত্তিতে কোডের নির্দিষ্ট অংশ কার্যকর করে, যদি শর্ত সত্য হয়।
      • if-else: এটি if এর সাথে একটি বিকল্প শাখা যুক্ত করে, যেখানে যদি শর্ত মিথ্যা হয়, তখন else ব্লকটি কার্যকর হয়।

      উদাহরণ:

      // if example
      if (x > 10) {
          System.out.println("x is greater than 10");
      }
      
      // if-else example
      if (x > 10) {
          System.out.println("x is greater than 10");
      } else {
          System.out.println("x is less than or equal to 10");
      }
      
  3. switch statement কী? এবং এর সুবিধা কী?

    • উত্তর: switch statement হল একটি ডিক্লারেটিভ স্টেটমেন্ট যা একটি নির্দিষ্ট এক্সপ্রেশন বা ভ্যালুর ওপর ভিত্তি করে একাধিক শাখা নির্বাচন করতে ব্যবহৃত হয়। এটি শুধুমাত্র অক্ষর, পূর্ণসংখ্যা, enum, এবং স্ট্রিং টাইপের জন্য কার্যকরী।
    • এর সুবিধা হল, একাধিক শর্ত যাচাই করার ক্ষেত্রে if-else if চেইন এর তুলনায় এটি কোডকে আরো পরিষ্কার এবং সহজ করে তোলে।

    উদাহরণ:

    int day = 2;
    switch (day) {
        case 1:
            System.out.println("Monday");
            break;
        case 2:
            System.out.println("Tuesday");
            break;
        case 3:
            System.out.println("Wednesday");
            break;
        default:
            System.out.println("Invalid day");
    }
    
  4. break এবং continue স্টেটমেন্টের মধ্যে পার্থক্য কী?
    • উত্তর:

      • break: এটি একটি লুপ বা সুইচ স্টেটমেন্ট থেকে বের হয়ে আসে, অর্থাৎ লুপটি বা সুইচ ব্লকটি দ্রুত শেষ হয়ে যায়।
      • continue: এটি লুপের বর্তমান ইটারেশনটি বাদ দিয়ে পরবর্তী ইটারেশনে চলে যায়।

      উদাহরণ:

      // break example
      for (int i = 1; i <= 5; i++) {
          if (i == 3) {
              break; // loop terminates when i is 3
          }
          System.out.println(i);
      }
      
      // continue example
      for (int i = 1; i <= 5; i++) {
          if (i == 3) {
              continue; // skips the current iteration when i is 3
          }
          System.out.println(i);
      }
      

Looping Statements এর উপর প্রশ্ন:

  1. Java তে কত ধরনের লুপ আছে?
    • উত্তর: Java তে তিনটি প্রধান ধরনের লুপ আছে:
      • for loop
      • while loop
      • do-while loop
  2. for লুপ কিভাবে কাজ করে এবং এর সিনট্যাক্স কী?

    • উত্তর: for লুপ একটি নির্দিষ্ট সংখ্যক ইটারেশন বা চক্র চালাতে ব্যবহৃত হয়। এটি তিনটি অংশে বিভক্ত থাকে: initialization, condition, এবং increment/decrement।

    সিনট্যাক্স:

    for (initialization; condition; increment/decrement) {
        // statements
    }
    

    উদাহরণ:

    for (int i = 0; i < 5; i++) {
        System.out.println(i); // prints 0, 1, 2, 3, 4
    }
    
  3. while লুপ কীভাবে কাজ করে এবং এটি কখন ব্যবহার করা উচিত?

    • উত্তর: while লুপ একটি শর্ত অনুযায়ী কার্যকরী হয় এবং শর্তটি মিথ্যা হওয়া পর্যন্ত চলতে থাকে। এটি ব্যবহার করা উচিত যখন আপনি জানেন না লুপটি কতবার চলবে, তবে আপনি শর্তটি জানেন।

    সিনট্যাক্স:

    while (condition) {
        // statements
    }
    

    উদাহরণ:

    int i = 0;
    while (i < 5) {
        System.out.println(i); // prints 0, 1, 2, 3, 4
        i++;
    }
    
  4. do-while লুপ কীভাবে কাজ করে এবং এর সাথে while লুপের পার্থক্য কী?

    • উত্তর: do-while লুপে প্রথমে কোড ব্লকটি একবার কার্যকর হয় এবং তারপর শর্ত যাচাই করা হয়। এর মানে হল যে do-while লুপে কোড অন্তত একবার চলবেই, এমনকি শর্ত মিথ্যা হলেও। অন্যদিকে while লুপে শর্তটি প্রথমে যাচাই করা হয় এবং শর্ত মিথ্যা হলে কোড একেবারেই এক্সিকিউট হবে না।

    সিনট্যাক্স:

    do {
        // statements
    } while (condition);
    

    উদাহরণ:

    int i = 0;
    do {
        System.out.println(i); // prints 0, 1, 2, 3, 4
        i++;
    } while (i < 5);
    
  5. Nested Loop কী?

    • উত্তর: Nested loop হল একটি লুপের মধ্যে অন্য একটি লুপ ব্যবহার করা। এটি সাধারণত যখন একাধিক শর্ত বা উপাদানকে ইটারেট করা হয়, তখন ব্যবহার করা হয়। যেমন, একটি টেবিল বা ম্যাট্রিক্সের প্রতিটি এলিমেন্টে প্রবেশ করতে nested loop ব্যবহার করা যেতে পারে।

    উদাহরণ:

    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            System.out.println("i = " + i + ", j = " + j);
        }
    }
    

Additional Tips:

  • Infinite Loops: যদি লুপের শর্ত কখনো মিথ্যা না হয়, তবে তা একটি ইনফিনিট লুপে পরিণত হয়। যেমন:

    while (true) {
        System.out.println("This is an infinite loop");
    }
    
  • For-each Loop: এটি বিশেষভাবে ব্যবহার করা হয় অ্যারে বা কনটেইনার ডেটা স্ট্রাকচারগুলিতে। এটি কোডকে আরো পরিষ্কার এবং সংক্ষিপ্ত করে।

    উদাহরণ:

    int[] numbers = {1, 2, 3, 4, 5};
    for (int num : numbers) {
        System.out.println(num);
    }
    

Control Statements এবং Looping সম্পর্কিত প্রশ্নগুলি প্রায়ই জাভা ইন্টারভিউতে আসে। এগুলি আপনার জাভা প্রোগ্রামিং দক্ষতা পরীক্ষা করার জন্য খুবই গুরুত্বপূর্ণ। এই ধারণাগুলি ভালোভাবে বুঝে রাখা ইন্টারভিউতে সফল হতে সাহায্য করবে।

Content added By

If-else, Switch Case, এবং Ternary Operator জাভার তিনটি গুরুত্বপূর্ণ কন্ট্রোল স্টেটমেন্ট যা শর্তাধীন লজিক প্রয়োগ করতে ব্যবহৃত হয়। এই তিনটির মধ্যে পার্থক্যগুলো নিম্নে আলোচনা করা হলো:

1. If-else Statement

If-else একটি শর্তাধীন কন্ট্রোল স্টেটমেন্ট, যা একাধিক শর্ত যাচাই করতে ব্যবহৃত হয়। এটি একাধিক শর্তের মধ্যে উপযুক্ত শর্তটি নির্বাচিত করতে সাহায্য করে। সাধারণত যখন শর্তের মধ্যে বিভিন্ন পরিস্থিতি পরীক্ষা করতে হয় তখন if-else ব্যবহৃত হয়।

Syntax:

if (condition1) {
    // Code block if condition1 is true
} else if (condition2) {
    // Code block if condition2 is true
} else {
    // Code block if none of the conditions is true
}

বিশেষত্ব:

  • একাধিক শর্ত যাচাই করতে সক্ষম।
  • শর্তগুলি সব ধরনের এক্সপ্রেশন (যেমন: ==, >, <, &&, ||) ব্যবহার করে।
  • কোডের মধ্যে আরো অনেক শর্ত পরীক্ষা করা সম্ভব।

উদাহরণ:

int a = 10, b = 20;

if (a > b) {
    System.out.println("a is greater");
} else {
    System.out.println("b is greater");
}

2. Switch Case Statement

Switch case একটি বিশেষ ধরনের শর্তাধীন স্টেটমেন্ট যা একাধিক মানের মধ্যে তুলনা করার জন্য ব্যবহৃত হয়। সাধারণত এটি একটি নির্দিষ্ট মানের উপর ভিত্তি করে শর্ত নির্ধারণ করে এবং নির্দিষ্ট শাখায় চলে যায়। switch কেবল একটি একক মানের সাথে কাজ করে (যেমন: int, char, String ইত্যাদি)।

Syntax:

switch(expression) {
    case value1:
        // Code block if expression matches value1
        break;
    case value2:
        // Code block if expression matches value2
        break;
    default:
        // Code block if no case matches
}

বিশেষত্ব:

  • একাধিক মানের মধ্যে তুলনা করতে ব্যবহৃত হয়।
  • শুধু নির্দিষ্ট ধরনের ডেটা (int, char, String) সাপোর্ট করে।
  • break ব্যবহার করা না হলে পরবর্তী case গুলোও এক্সিকিউট হবে (fall-through behavior)।
  • কোডের মধ্যে সাপেক্ষে অনেক শাখা ব্যবহৃত হয় না, তাই কোড বেশি পরিষ্কার হয়।

উদাহরণ:

int day = 3;
switch (day) {
    case 1:
        System.out.println("Monday");
        break;
    case 2:
        System.out.println("Tuesday");
        break;
    case 3:
        System.out.println("Wednesday");
        break;
    default:
        System.out.println("Invalid day");
}

3. Ternary Operator

Ternary Operator একটি সংক্ষিপ্ত শর্তীয় অপারেটর যা একটি ছোট if-else স্টেটমেন্টের বিকল্প হিসেবে ব্যবহৃত হয়। এটি তিনটি অংশে বিভক্ত থাকে:

  1. শর্ত (condition)
  2. শর্ত সঠিক হলে ফলাফল (true case)
  3. শর্ত ভুল হলে ফলাফল (false case)

Syntax:

condition ? true_expression : false_expression;

বিশেষত্ব:

  • ছোট এবং সংক্ষিপ্ত কোডে শর্ত পরীক্ষা করার জন্য ব্যবহৃত হয়।
  • একাধিক শর্ত যাচাই করতে এটি ব্যবহৃত হতে পারে না (যেহেতু এটি শুধু একটি শর্তের জন্য কাজ করে)।
  • কোডের মধ্যে এক্সপ্রেশন হিসেবে ব্যবহৃত হয়, সাধারণত ভেরিয়েবলের মান অ্যাসাইনমেন্টের জন্য।

উদাহরণ:

int a = 10, b = 20;
String result = (a > b) ? "a is greater" : "b is greater";
System.out.println(result);

পার্থক্য:

বিষয়If-elseSwitch CaseTernary Operator
সংজ্ঞাশর্ত অনুযায়ী একাধিক কোড ব্লক কার্যকর করা।একাধিক সম্ভাব্য মানের মধ্যে তুলনা করা।সংক্ষিপ্তভাবে শর্ত পরীক্ষা করার জন্য ব্যবহার করা হয়।
শর্তের ধরণযেকোনো শর্ত (boolean expression)।শুধুমাত্র একটি একক মানের তুলনা (int, char, String)।একটি শর্ত (boolean expression)।
কোডের সংখ্যাঅনেক কোডের প্রয়োজন (যদি অনেক else if থাকে)।কোড পরিষ্কার থাকে, তবে শর্তের সংখ্যা সীমিত।খুব ছোট কোড এবং সহজ।
বিকল্প শর্তএকাধিক শর্ত যুক্ত করা সম্ভব।শুধুমাত্র একাধিক নির্দিষ্ট মানের জন্য কাজ করে।শুধুমাত্র একটি শর্তের জন্য ব্যবহৃত হয়।
ব্যবহারযোগ্যতাঅনেক পরিস্থিতির মধ্যে ব্যবহারযোগ্য।যখন তুলনা একাধিক মানের সঙ্গে হয়।ছোট শর্তীয় সিদ্ধান্তে দ্রুত ফলাফল পেতে ব্যবহৃত হয়।
  • If-else স্টেটমেন্টগুলি সাধারণত জটিল শর্তের ক্ষেত্রে ব্যবহার হয় এবং যেকোনো ধরনের শর্ত পরীক্ষা করতে পারে।
  • Switch case সাধারণত একটি মানের সাথে তুলনা করতে ব্যবহৃত হয় এবং কোড পরিষ্কার রাখে, কিন্তু এটি অনেক বেশি শর্ত পরীক্ষায় দক্ষ নয়।
  • Ternary operator হল এক ধরনের সংক্ষিপ্ত if-else স্টেটমেন্ট যা একটি শর্তের উপর ভিত্তি করে একটি ফলাফল প্রদান করে, সাধারণত ভেরিয়েবল অ্যাসাইনমেন্টে ব্যবহৃত হয়।

এই তিনটি কন্ট্রোল স্টেটমেন্টের মধ্যে ব্যবহারের পছন্দ পরিস্থিতির উপর নির্ভর করে।

Content added By

Java তে লুপ ব্যবহার করা হয় কোডের একটি নির্দিষ্ট অংশ বারবার চালানোর জন্য। এটি প্রোগ্রামিংয়ের মৌলিক একটি ধারণা, যা অর্ডার বা সংখ্যা সাপেক্ষে কাজ করতে সহায়তা করে। Java তে তিনটি প্রধান ধরনের লুপ রয়েছে: for loop, while loop, এবং do-while loop। এই লুপগুলো প্রতিটির নিজস্ব ব্যবহার এবং কাঠামো রয়েছে।

১. For Loop

for লুপটি একটি নির্দিষ্ট সংখ্যক পুনরাবৃত্তি করার জন্য ব্যবহৃত হয়। এটি তিনটি অংশে বিভক্ত: শুরু, শর্ত এবং বৃদ্ধি/হ্রাস।

সিনট্যাক্স:

for (initialization; condition; increment/decrement) {
    // Loop body
}
  • Initialization: লুপের প্রথমে চলবে এমন কোড (যেমন, কাউন্টার ভেরিয়েবল প্রাথমিক মান দেয়া)।
  • Condition: লুপ চলবে যদি এই শর্তটি সঠিক থাকে।
  • Increment/Decrement: প্রতি পুনরাবৃত্তির পর কাউন্টার ভেরিয়েবল বাড়ানো বা কমানো হয়।

উদাহরণ:

public class ForLoopExample {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            System.out.println("Iteration: " + i);
        }
    }
}

আউটপুট:

Iteration: 1
Iteration: 2
Iteration: 3
Iteration: 4
Iteration: 5

এখানে i এর মান প্রথমে 1 থেকে শুরু হয় এবং 5 পর্যন্ত প্রতিবার 1 বাড়ানো হয়।

২. While Loop

while লুপটি এক ধরনের লুপ যেখানে শর্তটি আগে চেক করা হয় এবং যদি শর্তটি সত্য হয়, তখনই লুপের ভিতরের কোডটি একাধিক বার এক্সিকিউট হয়। এটি শর্ত পূর্ণ না হওয়া পর্যন্ত চলতে থাকে।

সিনট্যাক্স:

while (condition) {
    // Loop body
}
  • Condition: যখন শর্তটি সত্য (true) থাকে, তখনই লুপটি চলবে।

উদাহরণ:

public class WhileLoopExample {
    public static void main(String[] args) {
        int i = 1;
        while (i <= 5) {
            System.out.println("Iteration: " + i);
            i++;
        }
    }
}

আউটপুট:

Iteration: 1
Iteration: 2
Iteration: 3
Iteration: 4
Iteration: 5

এখানে, শর্ত i <= 5 সত্য হওয়া পর্যন্ত লুপ চলতে থাকে। প্রতিবার লুপ চালানোর পর i বাড়ানো হচ্ছে।

৩. Do-While Loop

do-while লুপটি অন্য ধরনের লুপ যেখানে শর্তটি পরবর্তীতে চেক করা হয়। এটি কমপক্ষে একবার লুপের কোড এক্সিকিউট করে, কারণ শর্তটি পরবর্তীতে চেক করা হয়। এই লুপটি কখনোই এক্সিকিউট হতে ব্যর্থ হয় না, কারণ শর্তটি চেক করার আগে কোডটি প্রথমে রান হয়।

সিনট্যাক্স:

do {
    // Loop body
} while (condition);
  • Condition: লুপটি চালানোর পর শর্তটি চেক করা হয়। যদি শর্ত সত্য (true) হয়, তবে লুপ আবার চালানো হয়।

উদাহরণ:

public class DoWhileLoopExample {
    public static void main(String[] args) {
        int i = 1;
        do {
            System.out.println("Iteration: " + i);
            i++;
        } while (i <= 5);
    }
}

আউটপুট:

Iteration: 1
Iteration: 2
Iteration: 3
Iteration: 4
Iteration: 5

এখানে, শর্ত চেক করার আগে কোড একবার এক্সিকিউট হয় এবং তারপর শর্তটি যাচাই করা হয়। ফলে, প্রথমেই একবার কোড রান হওয়ার পর শর্তটি চেক হয়।

প্রধান পার্থক্য:

লুপ ধরনেরকাজের পদ্ধতিশর্ত পরীক্ষাপ্রথমবার কোড এক্সিকিউট হয়
For Loopনির্দিষ্ট সংখ্যক পুনরাবৃত্তির জন্য ব্যবহৃত।প্রথমেই শর্ত পরীক্ষানা (শুরুতে Initialization)
While Loopশর্ত সঠিক থাকলে বারবার চলতে থাকে।প্রথমে শর্ত পরীক্ষানা
Do-While Loopকমপক্ষে একবার কোড এক্সিকিউট হয়, পরে শর্ত পরীক্ষা হয়।পরে শর্ত পরীক্ষাহ্যাঁ

কখন কোন লুপ ব্যবহার করবেন?

  • For Loop: যদি আপনার কাছে পুনরাবৃত্তির সংখ্যা নির্দিষ্ট থাকে, যেমন 1 থেকে 10 পর্যন্ত গুন করা বা কোন নির্দিষ্ট সংখ্যক বার কোড চালানো।
  • While Loop: যদি শর্তটি সত্য না হওয়া পর্যন্ত চলতে থাকে, এবং শর্তের উপর ভিত্তি করে চলবে।
  • Do-While Loop: যদি আপনি চান যে লুপের কোড কমপক্ষে একবার চালানো হোক, তারপর শর্তটি পরীক্ষা করা হোক।

Java তে for, while, এবং do-while লুপ তিনটি গুরুত্বপূর্ণ লুপ, যার মধ্যে প্রতিটির ব্যবহার নির্ভর করে পরিস্থিতি এবং প্রোগ্রামিংয়ের উদ্দেশ্যের উপর। For loop সুনির্দিষ্ট পুনরাবৃত্তির জন্য ব্যবহৃত হয়, while loop শর্ত পূর্ণ না হওয়া পর্যন্ত চলতে থাকে এবং do-while loop কমপক্ষে একবার কোড এক্সিকিউট করতে ব্যবহৃত হয়।

Content added By

Break এবং Continue দুটি কন্ট্রোল স্টেটমেন্ট, যা loop বা switch-case স্টেটমেন্টের আচরণ নিয়ন্ত্রণ করতে ব্যবহৃত হয়। এগুলি প্রোগ্রামের flow কে পরিবর্তন করে, যার মাধ্যমে লুপ বা কন্ডিশনাল স্টেটমেন্টের কার্যপ্রবাহকে নিয়ন্ত্রণ করা যায়।

1. Break Statement:

Break স্টেটমেন্ট ব্যবহার করা হয় লুপ বা সুইচ-কেস স্টেটমেন্টের কার্যপ্রবাহকে অবিলম্বে বন্ধ করতে। অর্থাৎ, যখন break ব্যবহৃত হয়, তখন প্রোগ্রামটি লুপ বা সুইচ-কেসের বাইরে চলে যায় এবং পরবর্তী কোড এক্সিকিউট করতে থাকে।

Break এর ব্যবহার:

  • For Loop, While Loop, Do-While Loop বা Switch Case-এ break ব্যবহার করা যেতে পারে।
  • সাধারণত এটি নির্দিষ্ট শর্ত পূর্ণ হলে লুপ বা সুইচ-কেস বন্ধ করার জন্য ব্যবহৃত হয়।

Break এর উদাহরণ:

public class BreakExample {
    public static void main(String[] args) {
        // একটি লুপে ব্রেক ব্যবহার
        for (int i = 1; i <= 10; i++) {
            if (i == 5) {
                break;  // i==5 হলে লুপ বন্ধ হয়ে যাবে
            }
            System.out.println(i);
        }
    }
}

আউটপুট:

1
2
3
4

এখানে, যখন i এর মান 5 হয়, তখন break স্টেটমেন্টটি কার্যকর হয়ে লুপটি বন্ধ হয়ে যায় এবং পরবর্তী স্টেটমেন্টগুলি এক্সিকিউট হয়।

2. Continue Statement:

Continue স্টেটমেন্ট লুপের বর্তমান ইটারেশনটি বাদ দিয়ে পরবর্তী ইটারেশনটি চালু করে। অর্থাৎ, এটি বর্তমান লুপের এক্সিকিউশনকে বাদ দিয়ে পরবর্তী সাইকেল শুরু করতে সাহায্য করে।

Continue এর ব্যবহার:

  • For Loop, While Loop, এবং Do-While Loop-এ continue ব্যবহার করা হয়।
  • সাধারণত এটি নির্দিষ্ট শর্ত পূর্ণ হলে কিছু নির্দিষ্ট কোড বাদ দিয়ে পরবর্তী ইটারেশন চালানোর জন্য ব্যবহৃত হয়।

Continue এর উদাহরণ:

public class ContinueExample {
    public static void main(String[] args) {
        // একটি লুপে কন্টিনিউ ব্যবহার
        for (int i = 1; i <= 10; i++) {
            if (i == 5) {
                continue;  // i==5 হলে এটি বাদ দিয়ে পরবর্তী ইটারেশনে যাবে
            }
            System.out.println(i);
        }
    }
}

আউটপুট:

1
2
3
4
6
7
8
9
10

এখানে, যখন i এর মান 5 হয়, তখন continue স্টেটমেন্টটি কার্যকর হয়ে 5 মুদ্রণ করা হয় না, এবং পরবর্তী ইটারেশনে চলে যায়।

Break এবং Continue এর মধ্যে পার্থক্য:

  • Break: লুপ বা সুইচ-কেস সম্পূর্ণভাবে বন্ধ করে দেয় এবং পরবর্তী কোড এক্সিকিউট করে।
  • Continue: বর্তমান ইটারেশনটি বাদ দিয়ে পরবর্তী ইটারেশন শুরু করতে সাহায্য করে, লুপটি চালু থাকে।
  • Break স্টেটমেন্ট একটি লুপ বা সুইচ-কেস থেকে বেরিয়ে যাওয়ার জন্য ব্যবহৃত হয়।
  • Continue স্টেটমেন্ট একটি লুপের এক ইটারেশন বাদ দিয়ে পরবর্তী ইটারেশন শুরু করার জন্য ব্যবহৃত হয়।

এগুলো প্রোগ্রামিংয়ের কার্যপ্রবাহকে আরও নিয়ন্ত্রিত ও সুবিধাজনক করতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...