Ini adalah tugas yang harus saya selesaikan.
Bisakah seseorang membawa saya ke arah yang benar?
Program dikompilasi tetapi tidak berjalan dengan benar.
Kesalahannya adalah pengecualian InputMissmatch.
Ini adalah tugas yang harus saya selesaikan.
Bisakah seseorang membawa saya ke arah yang benar?
Program dikompilasi tetapi tidak berjalan dengan benar.
Kesalahannya adalah pengecualian InputMissmatch.
Masalah Anda adalah Anda memasukkan surat ke dalam bidang float. Dalam program Anda, Anda meminta pengguna untuk memasukkan float:
A = hope.nextFloat();
Namun jika Anda memasukkan huruf "A", Anda akan mendapatkan pengecualian karena "A" bukanlah float, melainkan string.
Cara yang lebih sederhana untuk menyelesaikan masalah Anda adalah alih-alih memiliki semua bidang pilihan, Anda cukup membaca masukan yang dimasukkan pengguna dari pemindai seperti:
String choice = hope.next();
Berikutnya dalam pernyataan if, Anda memeriksa apakah nilai dari pilihan string sama dengan huruf tertentu, misalnya
if (choice.equals("A")) {
number4 = (number1 + number2 + number3);
System.out.printf("Your results are:" + (number4));
}
Dan Anda dapat melakukan hal yang sama untuk pilihan lain yang Anda miliki.
Kesalahan yang Anda dapatkan berarti Anda mencoba menggunakan beberapa jenis data sebagai data lain, dalam kasus Anda, Anda mungkin mencoba menggunakan String sebagai float.
Saat menggunakan salah satu metode berikutnya di kelas Pemindai, pertama-tama Anda harus memastikan bahwa ada masukan yang sesuai dari pengguna.
Untuk melakukannya, Anda perlu menggunakan metode has.
Masalah Anda adalah Anda tidak memeriksa apakah inputnya adalah float yang benar atau tidak sebelum menggunakan Scanner.nextFloat();
Anda harus melakukan sesuatu seperti ini:
if (hope.hasNextFloat())
{
// Code to execute when you have a proper float,
// which you can retrieve with hope.nextFloat()
}
else
{
// Code to execute when the user input is not a float
// Here you should treat it properly, maybe asking for new input
}
Itu seharusnya cukup untuk mengarahkan Anda ke arah yang benar.
Selain itu, periksa dokumentasi api Scanner untuk informasi lebih lanjut detail.
EDIT
Selain itu, Anda meminta pengguna untuk memasukkan karakter (atau string): "A", "B", dll..., tetapi Anda mencoba membandingkannya dengan float. Salah, sebaiknya bandingkan dengan string atau karakter, seperti ini:
if (hope.hasNextString())
{
if (hope.nextString().equals("A"))
{
// Code for option "A"
}
else if (hope.nextString().equals("B"))
{
// Code for option "B"
}
else ...
}
Anda bisa menggunakan switch di sana, tapi sepertinya Anda belum terlalu familiar dengan java, jadi saya akan meninggalkannya untuk lain waktu.