10-10-2020, 19:08

"double" kodu 3.92 sayısını veya 0.05 gibi bir sayıyı kabul etmiyor. Ne yapmam gerekiyor?
Java InputMismatchException Hatası
|
10-10-2020, 19:08
![]() "double" kodu 3.92 sayısını veya 0.05 gibi bir sayıyı kabul etmiyor. Ne yapmam gerekiyor?
İlk başta 100000 yazıp entere bastığında sadece 100000 sayısını değil enter (\n) karakterini de gönderiyorsun. Double okuyan scanner da doğal olarak sadece 100000 sayısını okuyor ve \n karakteri boşta kalıyor. Daha sonra gelen scanner okumaya başladığında karşısına gelen ilk bit önceki okumadan kalan \n karakteri oluyor ve "Bu doube değil." diyerek hata veriyor.
Her okumanın ardından Scan.next() yazarsan boşta kalan \n karakterini okuma bölümünden kaldırabilirsin. Ayrıca değişkenleri isimlendirirken büyük harfle başlamamanı öneririm. M = Scan.nextDouble(); Scan.next(); R = Scan.nextDouble(); Scan.next(); . . .
10-10-2020, 19:38
@Ayro, teşekkürler kod çalıştı ama bir sorun daha çıktı scan.next kodunu kullanmam ile.
![]() 3 kere sorması gerekirken 5 kere soruyor. Sanırım scan.nextleri de sayıyor. Buna ne yapmalıyım?
10-10-2020, 19:52
Kusura bakma next değil nextLine kullanman lazım. nextLine() okuma yaparken \n karakterine kadar okur ve \n karakterini de içine alır. Bu sayede okuma yeri \n karakterinden temizlenmiş olur.
10-10-2020, 20:08
(Son Düzenleme: 10-10-2020, 20:25, Düzenleyen: Yasin Ahmet.)
10-10-2020, 21:17
Türkçe karakterlerde ondalıktan sonrası virgül ile ayrılırken, yabancı karakterlerde nokta ile ayrılır. Program bir şekilde girileri Türkçe okuyor olabilir.
|
|