Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

الدالة 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

أضف تعليق

يجب تسجيل الدخول حتى تتمكن من إضافة تعليق أو رد.