If you're seeing this message, it means we're having trouble loading external resources on our website.

তোমার যদি কোন ওয়েব ফিল্টার দেওয়া থাকে, তাহলে দয়া করে নিশ্চিত কর যে *.kastatic.org এবং *.kasandbox.org ডোমেইনগুলো উন্মুক্ত।

মূল বিষয়বস্তু

পর্যালোচনা: লজিক এবং if স্টেটমেন্ট

আমরা এই অনুশীলনীতে লজিক এবং if স্টেটমেন্ট সম্পর্কে যা শিখেছি এটি হল তার পর্যালোচনা।
প্রায়ই আমরা প্রোগ্রামে "শর্ত অনুযায়ী" কাজ করতে চাই - প্রোগ্রামকে আমরা এরকমভাবে বলতে চাই যে, "যদি এই বিবৃতিটি সত্য হয়, তাহলে X কাজটি কর, আর যদি অন্য বিবৃতিটি সত্যি হয়, তাহলে Y কাজটি কর।" এটা অনেকটা এইরকম যে- সকালে ঘুম থেকে ওঠার পরে - যদি বাইরে বৃষ্টি হচ্ছে দেখি তাহলে আমি ছাতা নিয়ে বাইরে বের হব, কিন্তু যদি বাইরে রোদ থাকে, তাহলে আমি সানগ্লাস নিয়ে বাইরে বের হব। আমরা প্রোগ্রামে if স্টেটমেন্ট এবং if/else স্টেটমেন্ট দুইটি কন্ডিশনাল রাশির (conditional expression) সাথে ব্যবহার করে যুক্তি অনুযায়ী কাজ করতে পারি।
একটি if স্টেটমেন্ট প্রোগ্রামকে ততক্ষণ পর্যন্ত কোড চালানোর নির্দেশ দেবে, যতক্ষণ পর্যন্ত কন্ডিশনটি সত্য (true) থাকবে। নিচের কোডটি একটি বার্তা আউটপুট হিসেবে প্রদর্শন করবে, যদি x, এর মান 0 থেকে বৃহত্তর হয়:
var x = 5;

if (x > 0) {
  text('x is a positive number!', 200, 200);
}
যেহেতু এখানে, x এর মান হল 5, যা 0 থেকে বড় এবং ফলস্বরূপ আমরা আউটপুট হিসেবে ক্যানভাসে বার্তাটি দেখতে পারব। এখন আমরা যদি x এর মান পরিবর্তন করে -1 করি, তাহলে আউটপুটে আমরা কোনো বার্তা দেখব না, কারণ এখানে x এর মান 0 থেকে বড় নয়।
x>0 এরকম রাশিগুলোকে কন্ডিশনাল রাশি বলা হয় - অর্থাৎ রাশিটি সত্য নাকি মিথ্যা তা এটা মূল্যায়ন করে থাকে। যখন কোনো মান সত্য বা মিথ্যা হয়, তখন তাদেরকে আমরা বুলিয়ান মান বলি (সংখ্যা বা স্ট্রিং এর ঠিক বিপরীত)। উদাহরণস্বরূপ, নিচের কন্ডিশনাল রাশিটি দেখা যাক:
text(x > 0, 200, 200); // Displays "true"
আমরা এটিকে চলক হিসেবে সংরক্ষণ করতে পারি এবং তারপর এটি প্রদর্শন করতে পারি:
var isPositive = x > 0;
text(isPositive, 200, 200);
আমরা তখন বলতে পারি যে, isPositive বুলিয়ান মানটি সংরক্ষণ করছে, কারণ x এর মানের উপরে ভিত্তি করে হয় এটি সত্য অথবা মিথ্যা হবে।
কন্ডিশনাল রাশি তৈরী করার জন্য অনেকগুলো পন্থা আমরা অবলম্বন করতে পারি যেগুলো সত্য বা মিথ্যা স্টেটমেন্টগুলো মূল্যায়ন করবে, কারণ তুলনা করার জন্য অনেকগুলো অপারেটর আমাদের কাছে আছে। সবচেয়ে বেশি ব্যবহৃত অপারেটরগুলোর নাম এখানে দেওয়া হল:
নিচে উল্লেখিত চলকটির কথা বিবেচনায় রেখে, তুলনা করার জন্য এখানে কিছু অপারেটর এবং সত্য হয় এমন রাশি উল্লেখ করা হল:
var myAge = 28;
অপারেটরঅর্থসত্য (True) রাশি
===সমানmyAge === 28
!==সমান নয়myAge !== 2928 !== 29
>বৃহত্তরmyAge > 2528 > 25
>=বৃহত্তর অথবা সমানmyAge >= 2828 >= 28
<ক্ষুদ্রতরmyAge < 3028 < 30
<=ক্ষুদ্রতর অথবা সমানmyAge <= 2828 <= 28
একটি সাধারণ ভুল হল, নিযুক্ত করার অপারেটর (=) ও তুলনা করার অপারেটর (===) ব্যবহারের ক্ষেত্রে বিভ্রান্ত হওয়া, কারণ এই দুইটি অপারেটরই সমান চিহ্ন ব্যবহার করে থাকে, কিন্তু তারা ভিন্ন। নিযুক্ত করার অপারেটরটি আসলে চলকের মান পরিবর্তন করে, যেখানে তুলনা করার অপারেটর শুধু চলকের মানটি পড়ে দেখে যে, মানটি অন্য কোনো মানের সমান কিনা। উদাহরণস্বরুপ:
var x = 2 + 2; // Sets it equal to 4

if (x === 4) { // Asks the question, "does this equal 4?"
   text("yep, 2 + 2 = 4!", 200, 200);
}
কখনো কখনো একটি কন্ডিশনাল রাশিতেই আমরা একাধিক তুলনা একসাথে করতে চাই এবং এই কাজটি করার জন্য আমাদের লজিকাল অপারেটর আছে। এই অপারেটরগুলো দিয়ে প্রোগ্রামে চলক যাচাই করা যায়, যেমন - আমাদের প্রোগ্রামে "X এবং Y উভয়ই সত্য কিনা" অথবা "X বা Y এর মধ্যে যেকোন একটি সত্য কিনা", ইত্যাদি।
আমাদের যদি এমন একটি শর্ত লাগে যেখানে দুইটি শর্তই এখানে সত্য হতে হবে তাহলে আমরা && অর্থাৎ ("AND") অপারেটরটি ব্যবহার করতে পারি:
var degreesOutside = 70;
var numberOfClouds = 50;
if (degreesOutside > 70 && numberOfClouds < 5) {
  text("Wear sun screen!", 200, 200);
}
একটি আয়তক্ষেত্রের ভেতরে ব্যবহারকারীর মাউসের অবস্থান (একটি বাটনের তৈরি করার জন্য) যাচাই করে দেখার জন্য আমরা এই অপারেটর ব্যবহার করে থাকি, এক্ষেত্রে অনেকগুলো && অপারেটর ব্যবহার করা হয়:
rect(100, 50, 100, 100); 

mousePressed = function() {
    if (mouseX > 100 && mouseX < 200 && mouseY > 50 && mouseY < 150) {
      text("You pressed it!", 80, 75);
    }
};
আমরা যদি এখন এমন একটি শর্ত চাই যেখানে কমপক্ষে একটি শর্ত সত্য হবে তাহলে আমরা || অর্থাৎ ("OR") অপারেটরটি ব্যবহার করতে পারি:
var degreesOutside = 70;
var numberOfClouds = 50;
if (degreesOutside > 70 || numberOfClouds < 5) {
  text("Wear sun screen if it's hot outside or there aren't many clouds!", 200, 200);
}
যদি আমাদের জটিল কোন শর্ত যাচাই করতে হয়, তখন && এবং || উভয়টিই আমরা একটি রাশিতে ব্যবহার করতে পারি। একই রকম রাশিগুলো একত্র করার জন্য প্রথম বন্ধনী ব্যবহার করা হয়, যেন প্রোগ্রাম বিভ্রান্ত না হয়ে যায় যে কোন ক্রম অনুযায়ী এখানে মূল্যায়নের কাজটি করতে হবে:
var myAge = 28;
if ((myAge >= 0 && myAge < 3)  || myAge > 90) {
  println('You\'re not quite in your peak.');
}
এখন if স্টেটমেন্টে ফিরে যাওয়া যাক। if কন্ডিশনটি যদি সত্য না হয় তাহলে আমরা এখানে কিছু কোড করতে চাই - এক্ষেত্রে, আমরা একটি else স্টেটমেন্ট যুক্ত করে থাকি।
var age = 28;
if (age > 16) {
  println('Yay, you can drive!');
} else {
  println('Sorry, but you have ' + (16 - age) + ' years until you can drive.');
}
অনেক সময় আমরা একাধিক কন্ডিশন যাচাই করার মাধ্যমে এবং প্রতিটির উপরে ভিত্তি করে বিভিন্ন কাজ করতে চাই, এক্ষেত্রে আমরা else if ব্যবহার করতে পারি:
var age = 20;
if (age >= 35) {
  println('You can vote AND hold any place in government!');
} else if (age >= 30) {
  println('You can vote AND run for the Senate!');
} else if (age >= 18) {
  println('You can vote!');
} else {
  println('You have no voice in government!');
}
তোমার যতবার ইচ্ছা ততবার তুমি কন্ডিশন যাচাই করা করতে পার - শুধুমাত্র প্রতিটি কন্ডিশন যাচাইয়ের কোডগুলো যে সঠিক আছে তা নিশ্চিত করতে হবে। চলকের মানগুলো পরিবর্তন করে কোড নিয়ে পরীক্ষা করে দেখতে হবে যতক্ষণ পর্যন্ত না তুমি বন্ধনীর ভিতরে থাকা প্রতিটি কোড পরীক্ষা করে দেখছ, যাতে তুমি জানতে পার যে কোডগুলো সঠিকভাবে কাজ করছে।
আশা করি এই অনুশীলনী থেকে তুমি বুঝতে পেরেছ যে, কন্ডিশন হল প্রোগ্রামিং এর গুরত্বপূর্ণ একটি অংশ এবং এটা শক্তিশালী এবং সহজে ব্যবহারযোগ্য প্রোগ্রাম তৈরীতে আমাদের সাহায্য করে থাকে।

আলোচনায় অংশ নিতে চাও?

কোন আলাপচারিতা নেই।
ইংরেজি জানো? খান একাডেমির ইংরেজি সাইটে আরো আলোচনা দেখতে এখানে ক্লিক কর।