nextInt ve nextLine
- Java kursu
- Başlangıç
- Ders 95/116
- 5 dk
nextInt() ve nextLine() ile tür dönüşümü öğrenirsin.
nextInt ile sayı oku
nextInt() konsoldan bir tam sayı okur. nextDouble() ise ondalıklı sayı için kullanılır. Bu yöntemler sayıyı okur ama satır sonundaki \n karakterini geride bırakır.
Scanner input = new Scanner(System.in);
System.out.print("Yaş: ");
int age = input.nextInt();
System.out.println("Yaşınız " + age);Sayı okuduktan hemen sonra nextLine() çağırırsan boş dize alırsın; çünkü kalan \n hemen tüketilir. Bu tuzak bir sonraki kartta ele alınır. Şimdilik sayı okumanın temelini kavrayın.
nextInt ve nextLine tuzağı
nextInt() sayıyı okur ama satır sonundaki \n'i bırakır. Ardından nextLine() çağırırsan, kalan \n hemen tüketilir ve boş dize alırsın. Çözüm: sayı okuduktan sonra boş bir nextLine() ile kalan satırı temizlersin.
int age = input.nextInt();
input.nextLine(); // kalan \n'i temizle
String name = input.nextLine();Bu düzenek yaygın bir hatadır. Sayıdan sonra metin okuyacaksan her zaman araya bir nextLine() koy. Böylece sonraki nextLine() gerçek kullanıcı girdisini okur.
Uygulama Yaş ve ad birlikte
Kullanıcıdan önce yaşı (nextInt), sonra adı (nextLine) al. Sayıdan sonra kalan satırı temizlemeyi unutma. Sonuç olarak Merhaba <ad>, <yaş> yaşındasın yazdır. Kullanıcı önce 30, sonra Mehmet yazacak.
Başlangıç kodu
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// yaş oku, kalan satırı temizle, ad oku, selamla
}
}Örnek çözüm
System.out.print("Yaş: ");
int age = input.nextInt();
input.nextLine();
System.out.print("Ad: ");
String name = input.nextLine();
System.out.println("Merhaba, " + name + ", " + age + " yaşındasın");Beklenen çıktı
Yaş: Ad: Merhaba, Mehmet, 30 yaşındasın
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Yaşı oku
System.out.print("Yaş: ");
int age = input.____();
System.out.println(age);
System.out.print("Yaş: ");
int age = input.nextInt();
System.out.println(age);
Açıklama: nextInt() bir tam sayı okur.
2 Aşağıdaki koddan sonra name değişkeninin değeri ne olur? int n = input.nextInt(); String name = input.nextLine(); (Kullanıcı 25 yazıp Enter'a basıyor, sonra Ayşe yazıp Enter'a basıyor.)
- Ayşe
- 25
- 25Ayşe
- Boş dize ("") Doğru cevap
Açıklama: nextInt 25'i okur ama \n kalır; nextLine kalan \n'i hemen tüketir ve boş dize döner.
3 Okuma yöntemini türle eşleştir
| Kavram | Anlamı |
|---|---|
nextInt() |
int |
nextDouble() |
double |
nextLine() |
String |
nextBoolean() |
boolean |