ধর যাক, আমি অনেক গুলো int type সংখ্যা ইনপুট নেবো এবং সাথে সাথে এগুলো যোগ করে রাখবো sum নামের একটা ভ্যারিয়েবলে। এখন কতগুলো সংখ্যা আমি ইনপুট নিবো এইটা নির্দিষ্ট না।

কিভাবে এই কোডটা লিখতে পারি?

কোডের সাথে এইটাও লিখে দিলে উপকৃত হবো, কোডটা কিভাবে কাজ করছে? এখানে আমি শুধু int type এর কথা উল্লেখ করছি কিন্ত এখানে double বা String type ও হতে পারে।

ধন্যবাদ :)

asked 20 Oct '16, 14:21

_Shaon_'s gravatar image

_Shaon_
796220

retagged 20 Oct '16, 16:29

menon's gravatar image

menon
4.7k334


Java তে একসাথে অনেক ইনপুট নেয়ার জন্য hasNext() ফাংশন আছে । এইটা আপনি int, double, float, String char সবগুলির ক্ষেত্রেই ব্যবহার করতে পারবেন ।

   public static void main(String[] args) {
            Scanner input = new Scanner(System.in);
            int sum, number;
            sum = 0;
            while(input.hasNext()) { // যতক্ষণ ইনপুট থাকবে ততোক্ষণ ইনপুট নিতে থাকবে ।
                number = input.nextInt();
                sum += number;
                System.out.println("Sum: "+sum);
            }
            // System.out.println("Sum: "+sum);
            input.close();
        }

আপনর যদি জানা থাকে আপনই কতগুলো ইনপুট নিবেন । যেমন আপনই যদি n = ৫ টা লাইন ইনপুট নিতে চাচ্ছেন এবং সেগুলো প্রিন্ট করতে চাচ্ছেন তে নিচের মত করে করতে পারেন । মেইন ফাংশনের ভেতর লিখতে হবে,

        Scanner input = new Scanner(System.in); 
        String str;
        int n = input.nextInt();
        input.nextLine();  //  this is for skip new line :)
        for(int i = 0; i < n; i++)  {
            str = input.nextLine();
            System.out.println(str);
        }

এই রকম ক্ষেত্রে hasNext() ব্যবহার করলে হবে না । hasNext() তখনি ব্যবহার করবেন যখন আপনাকে বলা হবে End of File ( EOF ) না হওয়া পর্যন্ত ইনপুট নিতে হবে ।

ধন্যবাদ :)

permanent link

answered 20 Oct '16, 15:02

menon's gravatar image

menon
4.7k334

edited 21 Oct '16, 15:58

1

কিন্তু কোডটা তো exit হচ্ছে না। মানে লুপ থেকে কন্ট্রোল লুপের পরের অংশে যাচ্ছে না। এরকম হচ্ছে যেন, while loop এর কন্ডিশন অংশে true লিখে দেওয়া হইছে।

(20 Oct '16, 15:10) _Shaon_
1

ফাইল থেকে ইনপুট নিলে । ফাইলে যদি ইনপুট শেষে হয়ে যায় তবে প্রোগ্রাম থেকে যাবে ।

(20 Oct '16, 16:13) menon

কিন্তু আমি তো Console থেকে ইনপুট নেই।

১ টা নাম্বার ইনপুট দেই এরপর ইন্টার বাটন প্রেস করি এভাবে ৪ থেকে ৫ টা নাম্বার ইনপুট দিয়ে লুপ থেকে বের হওয়ার জন্য অপেক্ষা করি।

আমি কি ঠিক ভাবে করতেছি? নাকি লুপ থেকে বের হওয়ার জন্য অন্য কিছু করতে হয়?

(20 Oct '16, 16:54) _Shaon_

...... . ....

(21 Oct '16, 07:44) _Shaon_
1

hasNext() ব্যবহার করে console থেকে ইনপুট নিলে লুপ থেকে বের হওয়ার জন্য আপনাকে if condition দিতে হবে যেটা পূর্ণ হলে লুপ থেকে বের হবে ।

(21 Oct '16, 12:07) menon

ব্যাপারটা এখনও বুঝি নাই।

কতগুলো স্ট্রিং ( String) স্পেস সহকারে কনসোল থেকে ইনপুট নিবো তা অজানা আছে। যেইটা ইনপুট নিবো ঐটা সাথে সাথে প্রিন্ট করে দিবো। এইটা নিয়া যদি ছোট একটা কোড লিখে দিতেন তাহলে মনে হয় বুঝতাম।

মূলত প্রশ্নটা করার কারণ হচ্ছে, URI Online judge এ স্ট্রিং নিয়ে যত প্রবলেম আছে প্রায় সবগুলার ই টেস্ট কেসের সংখ্যা নির্দিষ্ট কইরা দেওয়ার কোন ওয়ে নাই। এইটার জন্যই প্রবলেম সলভিং আটকায় আছে।

(21 Oct '16, 13:51) _Shaon_
1

উত্তর এডিট করে দিলাম ।

(21 Oct '16, 15:59) menon
showing 5 of 7 show 2 more comments
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:

×210
×1
×1

question asked: 20 Oct '16, 14:21

question was seen: 666 times

last updated: 21 Oct '16, 15:59