Arama butonu
Bu konudaki kullanıcılar: 1 misafir
10
Cevap
926
Tıklama
0
Öne Çıkarma
Java Yazdığım kod hata veriyor.
C
7 yıl
Çavuş
Konu Sahibi

Merhabalar,

Bir kod yazdım ama çalıştırırken aşağıdaki hatayı veriyor. Nedeni nedir acaba?

Listeye Exception in thread "main" java.lang.NullPointerException
at ForDöngüsü.main(ForDöngüsü.java:26)

Teşekkürler

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



G
7 yıl
Teğmen

NullPointer iste : )

Degiskenlerinden biri veya daha fazlasi tanimlanmis ama deger atanmamis.

Ya da 5 elemanli bir listen var mesela,sen liste [5] kullanmissindir.O da tanimlanmamis sonuçta.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
S
7 yıl
Yüzbaşı

Keske koduda atsaydin hocam



C
7 yıl
Çavuş
Konu Sahibi

import java.util.Scanner;

public class ForDöngüsü {

private static Scanner scan;

public static void main(String[] args) {
Scanner sc=new Scanner(System.in);

PazarListesi liste = new PazarListesi(6);
liste.listeyeEkle("Ekmek");
liste.listeyeEkle("Su");
liste.listeyeEkle("Gofret");
liste.listeyeEkle("Su0");
liste.listeyeEkle("Su1");
liste.listeyeEkle("Su2");


System.out.println("İlk Hali ");
liste.yaz();
System.out.println("Index gir :");
int a = sc.nextInt();
System.out.println("Liste gir :");
String b = sc.next();
liste.ekle(b,a);

System.out.print("Son Hali!");
liste.yaz();
}
}



C
7 yıl
Çavuş
Konu Sahibi

public class PazarListesi {


String[] liste;
int elemanSayisi;
int sinir;

public PazarListesi(int elemanKapasitesi) {

liste= new String[elemanKapasitesi];
elemanSayisi=0;
sinir= elemanKapasitesi;

}
public void listeyeEkle ( String eklenecekOlan) {
if(elemanSayisi < sinir) {
liste[elemanSayisi]= eklenecekOlan;
elemanSayisi++;
}
else {

System.out.println("Boş Yer Kalmadı");
}
}

public void yaz() {

for(int i =0; i< elemanSayisi; i++) {

System.out.println(liste);
}
}






public void ekle(String eklenecekEleman, int index) {
for(int i = elemanSayisi -1; i >= index; i--) {

liste[i+1]=liste;

}
liste[index]=eklenecekEleman;

elemanSayisi++;
}
}



C
7 yıl
Çavuş
Konu Sahibi

2 tane class var ikisinide ekledim.

şimdiden teşekkürler



S
7 yıl
Yüzbaşı

hiç olmamış, C programı yazar gibi Java kullanmışsın.

öncelikle dizi boyunu ayrı bir yerde tutmana gerek yok, Java'da her array'de length field olur.

fakat yapmak istediğin şey için Java'da Collections Framework var, mesela ArrayList gibi.. böyle döngüyle array sonuna eklemek, elemanları kaydırmaya çalışmak falan yok.

sorun muhtemelen ekle() içinde.



< Bu ileti mini sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
C
7 yıl
Çavuş
Konu Sahibi

Youtube'da biri videolar çekmiş onları izliyorum. daha 19. videodayım o yüzden pek bir bilgim yok yani:) öğrendikçe daha iyi olur belki.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @seyfi84
S
7 yıl
Yüzbaşı

seyrederek değil okuyarak öğrenilir bu işler. doğru düzgün kitaplarla başlayın. videoyu çeken neyin nesi kimin fesi? boş işlerle uğraşıyorsun.



< Bu ileti mini sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @centiyane
J
7 yıl
Teğmen

private static Scanner scan;

Sil bunu



< Bu ileti DH mobil uygulamasından atıldı >

F
7 yıl
Er

Bir kere ForDöngüsü diye class adı olmaz, daha baştan kafam karıştı.
Ekle metodunda index tutman yanlış. Onu PazarListesi'ne bir değişken olarak tutman lazım. Hem böylelikle her listede toplam kaç eleman olduğuna getter setter metodlarıyla erişebilirsin. Her seferinde for döngüsü çalıştırmaktan da kurtulursun.
yaz matodunta bütün listeyi içindeki eleman sayısı kadar kez bastırmaya çalışmışın. bir kez bastırman yeterli. for döngüsünü listesinin i'nci elemanını bastırmak üzere ayarlaman lazım. listeyeEkle metodu doğru görünüyor.

Sorun ekle() metodunda. index parametresini kaldırıp ona göre bi yapı kur düzgün çalışır.

Bir de genel olarak nullpointer exception aldığın yeri bulabilmek için stacktrace'de hatanın verildiği ilk yere ulaşana kadar hataları takip edersen nerden kaynaklandığın bulursun, 26. satır demiş ama ben burda hangi satır olduğunu bilmiyorum.





< Bu mesaj bu kişi tarafından değiştirildi fir -- 5 Ağustos 2018; 22:1:41 >


Bu mesajda bahsedilenler: @centiyane , @Glitch
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.