এই প্রোগ্রাম যেকনো ঋণাত্মক সংখ্যা ইনপুট দিলে, প্রথম ফাংশন প্রিন্ট করে না । তার কারন কি?

#include<stdio.h>
    int main()

    {
        int x=-3;
        if(x>0)
        printf("cannot "); /*এই ঘর টা*/
        printf("divide ");
        printf(" by zero");

        return 0;
    }

asked 10 Sep '16, 22:00

7beback's gravatar image

7beback
287


if কে বলা হয় কন্ডিশনাল স্টেটমেন্ট। if ব্যবহার করলে এর পরের স্টেটমেন্টটি চলবে(এক্সিকিউট বা রান) কি চলবে না এটা নির্ভর করবে if এর মধ্যে দেয়া শর্তের(Condition) এর উপর। যেমন এক্ষেত্রে if এর মধ্যে শর্ত দেয়া আছে x > 0। অর্থাৎ x এর মান যদি 0 এর চেয়ে বড় হয় কেবল মাত্র তখনই if এর পরের স্টেটমেন্টটি ( এক্ষেত্রে printf("cannot "); ) চলবে। এজন্যই x এর মান ঝণাত্বক হলে printf("cannot ") চলে না যেহেতু x এর মান 0 এর চেয়ে বড় নয়।

কন্ডিশনাল লজিক নিয়ে বিস্তারিত পড়া যাবে এখানে

permanent link

answered 11 Sep '16, 02:08

Ashfaqur%20Rahman's gravatar image

Ashfaqur Rahman
78310

ধন্যবাদ ভাই

(11 Sep '16, 08:45) 7beback

কিন্তু ভাই তাহলে পরে printf("divide "); printf(" by zero"); এটা রান করার কারন কি?

(11 Sep '16, 08:56) 7beback

আপনি যদি x এর মান শূন্য থেকে বড় দেন তবে আপনার ৩ টা প্রিন্ট ফাংশনই কাজ করবে । কারণ আপানর if condition সত্য হওয়ার কারণে, printf("cannot"); কাজ করবে । আর আপনার ২য় ও ৩য় প্রিন্ট ফাংশন সব সময়ই কাজ করবে আপনার if condition সত্য বা মিথ্যা যেটায় হোক না কেন ।

কারণ আপনি if condition এ কোন ব্রাকেট ব্যবহার করেন নি । আপনি যদি চান আপানার if condition ৩ টা প্রিন্ট ফাংশনের জন্যই কাজ করবে তবে আপনাকে নিচের মত করে লিখতে হবে ।

if(x>0) {
    printf("cannot "); /*এই ঘর টা*/
    printf("divide ");
    printf(" by zero");
}

আপনি ব্রাকেট না দেয়ার জন্য printf("divide"); ও printf(" by zero"); শর্ত পূরণ না হলেও কাজ করছে ।

আপনার if block এর মধ্যে যদি একটা statement থাকে তবে আপনি ,

if(condition)
    // statement

or

if(condition) {
    // statement
}

লিখতে পারেন । কিন্তু আপনার যদি একাধিক statement থাকে তবে আপনাকে অবশ্যই নিচের মত করে লিখতে হবে,

if(condition) {
   // statement - 1;
   // statement - 2;
   // statement - 3;
   // .............;
   // statement - n;
}

আশা করি এখন বুঝতে পারছেন :)

ধন্যবাদ :)

permanent link

answered 11 Sep '16, 11:07

menon's gravatar image

menon
4.7k335

1

ভাইয়া , ঋণাত্মক সংখ্যা ইনপুট দিলাম। ব্রাকেট ব্যবহার করার পর কম্পাইলার ব্লাঙ্ক দেখায় ।

(11 Sep '16, 14:21) 7beback

ঋণাত্মক সংখ্যা ইনপুট দিলে আপনার if condition এর শর্ত পূরণ হচ্ছে না । তাই if ব্লক এর ভেতর যা কিছু লিখবেন সেগুলো কাজ করবে না । শর্ত পূরণ হলেই কেবল কাজ করবে ।

শর্ত পূরণ না হওয়ার কারণেই ব্লাঙ্ক দেখাচ্ছে ।

ধন্যবাদ @7beback

(12 Sep '16, 06:39) menon

ধন্যবাদ ভাই

(13 Sep '16, 18:32) 7beback
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×402
×214
×13

question asked: 10 Sep '16, 22:00

question was seen: 723 times

last updated: 13 Sep '16, 18:32