Cara memasukkan Input pada baris berikutnya di utilitas Pemindai Java

Saya punya pertanyaan dasar Java tentang utilitas pemindai. Katakanlah saya memiliki program sederhana yang mengambil input pengguna dan menyimpannya dalam sebuah variabel. Pertanyaan saya adalah ketika saya menjalankan program yang meminta banyak input, kursor dimulai di awal pertanyaan dan bukan setelahnya. Kode saya adalah:

public class question3 {

    public static void main(String[] args){

       Scanner s = new Scanner(System.in);
       System.out.println("Enter the first number:");
       Float a = s.nextFloat();
       System.out.println("Enter the second number:");
       Float b = s.nextFloat();
       System.out.println("Sum = " + (a+b));
       System.out.println("Difference = " + (a-b));
       System.out.println("Product = " + (a*b));


       }
}

Saat saya menjalankan program ini akan terlihat seperti Enter First Number lalu saya mengetik nomornya, lalu |Enter Second Number. "|" artinya di mana kursor berkedip berada. Saat saya mengetik, itu akan muncul di bawahnya, tapi bisa membingungkan pengguna jadi saya bertanya-tanya apa solusinya.

masukkan deskripsi gambar di sini

Ini adalah masalah IDE, karena tidak ada yang salah dengan kodenya.


person VrnRap    schedule 12.09.2013    source sumber
comment
Ini masalah dengan IDE. Program Anda terlihat sempurna. Menambahkan \n, mungkin, mungkin membuatnya lebih baik, tetapi kursor berkedip adalah masalah IDE.   -  person VictorCreator    schedule 12.09.2013
comment
@Vijairam ya menurutku begitu. Saya tidak melihat masalah atau solusi lain. Terima kasih.   -  person VrnRap    schedule 12.09.2013


Jawaban (3)


Daripada println(String) sebelum setiap masukan, ubah menjadi print(String). Jadi akan terlihat seperti ini:

public class question3{

    public static void main(String[] args){

        Scanner s = new Scanner(System.in);
        System.out.print("Enter the first number:");
        Float a = s.nextFloat();
        System.out.print("Enter the second number:");
        Float b = s.nextFloat();
        System.out.println("Sum = " + (a+b));
        System.out.println("Difference = " + (a-b));
        System.out.println("Product = " + (a*b));


    }
}

Selain itu, sebagai catatan, Anda harus menggunakan konvensi penamaan yang tepat/sesuai untuk variabel Anda. Seperti untuk Scanner Anda, Anda harus menyebutnya reader atau input; sesuatu yang mewakili fungsinya. Ide yang sama berlaku untuk variabel Anda lainnya. Selain itu, nama kelas dimulai dengan huruf kapital.

Berikut hasil akhirnya:

masukkan deskripsi gambar di sini

person Josh M    schedule 12.09.2013
comment
apakah s.nextFloat(); buatkan baris baru untukmu? - person ug_; 12.09.2013
comment
@ ns47731 Kalau dilihat dari gambarnya (menggunakan IntelliJ), akan terlihat seperti itu. - person Josh M; 12.09.2013
comment
@JoshM terima kasih atas balasan Anda tetapi masalah saya sepertinya adalah kursor berkedip, program menempatkan nomor di tempat yang benar tetapi di layar menunjukkan kursor berkedip di awal pertanyaan. Bisakah Anda memvisualisasikannya? atau haruskah aku memotretnya? - person VrnRap; 12.09.2013
comment
@VrnRap Saya pikir itu sangat tergantung pada IDE mana yang Anda gunakan. Tentu, perbarui pertanyaan Anda dengan gambar. Sepertinya Anda menggunakan Dr. Java dalam hal ini saya yakin Anda cukup mengeklik ke tempat masukan biasanya berada dan tanda sisipan akan berpindah ke sana. - person Josh M; 12.09.2013
comment
@JoshM ya, itu berpindah ke lokasi yang benar ketika saya menekan atau mengetik hanya sesuatu yang visual. menurutku itu bukan masalah besar. - person VrnRap; 12.09.2013

System.out.println mencetak string lalu baris baru, sehingga masukan Anda ditempatkan pada baris baru. Cobalah membuatnya dibaca

System.out.print("Enter the first number:");
Float a = s.nextFloat();
System.out.println();
System.out.print("Enter the second number:");
Float b = s.nextFloat();
System.out.println();
person ug_    schedule 12.09.2013
comment
Pada dasarnya masalahnya sama karena ini bukan masalah programnya. Mungkin karena Eclipse saya tidak tahu tapi Kursornya masih berkedip di tempat yang berbeda dan tidak di tempat yang seharusnya. - person VrnRap; 12.09.2013

Ini dapat menghemat beberapa detik, dengan mengetikkan beberapa baris:

System.out.print("Enter the first number:");
Float a = s.nextFloat();
System.out.print("\nEnter the second number:");
Float b = s.nextFloat();
System.out.println("\nSum = " + (a+b)
                   +"\nDifference = " + (a-b)
                   +"\nProduct = " + (a*b));
person LeandreM    schedule 12.09.2013