إعلان
تعلم الآن

الدالة nextLine الموجودة في الكلاس Scanner لا تعمل!

لقد ظهر لي خطأ في الدالة nextLine() الموجودة في الكلاس Scanner الخاص بجافا عندما كنت حل احدى التحديات على hackerRank.


الصورة التالية هي المطلوب بالضبط:


الصورة التالية توضح النتيجة المتوقعة:


شرح المطلوب

المطلوب هو أن يدخل المستخدم أولا عدداً صحيحاً نوعه int ثم يتم حفظه في متغير إسمه i، ثم يدخل عدد به فاصلة نوعه double و يتم حفظه في متغير إسمه d، و في النهاية يدخل نص يتم حفظه في متغير إسمه s و بعدها يتم زيادة قيمة i بأعلى قيمة ممكنة من d وطبعا تحويلها إلى int ومن ثم عرضه و أيضاً ضرب قيمة d في 2 و هكذا و السترينج واضح أمرها.


الحل الذي فعلته:

import java.util.Scanner;

public class Main {
    
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        int i = input.nextInt();

        double d = input.nextDouble();
        
        input.nextLine();

        String s = input.nextLine();

        System.out.println((int)(i+d));

        System.out.println(d*2);

        System.out.println("HackerRank "+s);

    }
    
}


المشكلة في الكود

المشكلة أساساً ظهرت كالآتي، عندما أقوم بإدخل المتغير الأول و أضغط enter ينتقل للمتغير الثاني و لكن عندما أدخل قيمة المتغير الثاني واضغط enter يبدأ مباشرة بطباعة المتغيرين و ينتهي الـ input. ما الحل و لماذا يحدث هذا؟


إجابات 1

أضف إجابة

يجب تسجيل الدخول حتى تتمكن من إضافة إجابة أو رد.
إعلان
دورة قواعد بيانات MySQL في هذه الدورة ستتعلم أساسيات قواعد البيانات و أوامر SQL، العلاقات (Join) بين الجداول، Normalization مع تطبيق مشروع متكامل. سعر الدورة الآن هو 20 ريال سعودي فقط بدلاً من 600 ريال
سعر الدورة الآن هو 20 ريال سعودي فقط بدلاً من 600 ريال
تعلم الآن

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة