এক্সপ্রেশান(Expressions), স্টেটমেন্ট(Statements) এবং ব্লক(Blocks)

আমরা ইতিমধ্যে ভেরিয়েবল এবং অপারেটর সম্পর্কে জেনে ফেলেছি, এবার তাহলে আমরা জেনে নিই এক্সপ্রেশান কি।

এক্সপ্রেশান(Expressions)

একপ্রেশান হচ্ছে কতগুলো ভ্যারিয়েবল, অপারেটর এবং মেথড বা ফাংশান কল এর মাধ্যমে একটি আউটপুট তৈরি করার জন্যে যে কোড লেখা হয়। উদাহরণ-

    ‌‌int cadence = 0;
    anArray[0] = 100;

    int result = 1 + 2; 
    if (value1 == value2) 
        System.out.println("value1 == value2");

উপরের cadence = 0 একটি এক্সপ্রেশান। এটির ‌”=” অপারেটরের মাধ্যমে একটি ভ্যালু cadence ভ্যারিয়েবল এ এসাইন হয়। তারপর anArray[0] = 100 এই এক্সপ্রেশানের মাধ্যমে anArray এরে এর প্রথম ঘরে 100 এসাইন করা হল।

1 + 2 একটি এক্সপ্রেশান যা “+” অপারেটর এর মাধ্যমে দুটি সংখ্যা যোগ হয় এবং “=” অপারেটর এর মাধ্যমে result ভ্যারিয়েবল এ এসাইন হয়। সুতরাং এখানে দুইটা এক্সপ্রেশান।

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

    1 * 2 * 3

এখানে 1 * 2 একটি এক্সপ্রেশান যার ইন্টিজার টাইপ এর ডাটাটাইপ এর আউটপুট প্রদান করে, এবং এটি যখন আবার 3 এর মাল্টিপ্লাই করা হয়, তখনও এর আউটপুট ইন্টিজার টাইপ হয়।

তবে কম্পাউন্ড এক্সপ্রেশান এর ক্ষেত্রে এম্বিগিউটি দূর করার জন্যে ব্রেস “()” ব্যবহার করা উত্তম। উদাহরণ -

    x + y / 100

এবং (x + y) / 100

এই দুটি এক্সপ্রেশান এর ফলাফল ভিন্ন হবে।

তবে যদি এক্সপ্রেশান এর অর্ডার ব্রেস দিয়ে না ঠিক করে দেওয়া হয় তবে অপারেটর এর অগ্রগণ্যতা(precedence) অনুযায়ী এক্সপ্রেশান এর অর্ডার নির্ধারিত হয়।

স্টেটমেন্টস(Statements)

স্টেটমেন্টস হচ্ছে অনেকটা একটা পূর্ণাঙ্গ বা সার্থক বাংলা বাক্যেের মতো। তবে প্রোগ্রামিং এর ভাষায় এটি হচ্ছে- একটি ছোট ইউনিট অব কোড যা কিনা এক্সিকিউশান করা যায়। কতগুলো এক্সপ্রেশান শেষে সেমিকোলন (;) দিয়ে শেষ করলে স্টেটমেন্ট হয়ে যায়। যেমন-

  • এসাইনমেন্ট এক্সপ্রেশান
  • ++ অথবা-- এর ব্যবহার
  • মেথড/ফাংশান কল
  • নতুন অবজেক্ট তৈরি করা, ইত্যাদি ।

এদেরকে এক্সপ্রেশানাল স্টেটমেন্ট বলা হয়।

    // এটি এসাইনমেন্ট স্টেটমেন্ট
    aValue = 8933.234;
    // এটি ইনক্রিমেন্ট স্টেটমেন্ট
    aValue++;
    // এখানে একটি মেথড কল করা হয়েছে
    System.out.println("Hello World!");
    // এখানে একটি অবজেক্ট তৈরি করা হয়েছে
    Bicycle myBike = new Bicycle();

আরও দু-ধরণের স্টেটমেন্ট আছে- ডিক্লারেশান স্টেটমেন্ট –

        double aValue = 8933.234;

কন্ট্রোল ফ্লাে স্টেটমেন্ট – এটি নিয়ে পরবর্তী চ্যাপ্টারে আরও বিস্তারিত বলা হবে।

ব্লকস(Blocks)

একটি কারলি ব্রেস “{}” এর মাঝে শূণ্য অথবা একাধিক স্টেটমেন্ট থাকলে তাকে ব্লক বলা হয়। উদারহরণ-

    class BlockDemo {
         public static void main(String[] args) {
              boolean condition = true;
              if (condition) { //এখানে ব্লক -১ এর শুরু 
                   System.out.println("Condition is true.");
              } //  এখানে ব্লক -১ শেষ
              else { // এখানে ব্লক-২ শুরু 
                   System.out.println("Condition is false.");
              } // এখানে ব্লক-২ শেষ 
         }
    }