Arama butonu
Bu konudaki kullanıcılar: 1 misafir
33
Cevap
1086
Tıklama
0
Öne Çıkarma
JAVA'DA ANLAMADIĞIM BİRŞEY???
G
12 yıl
Yüzbaşı
Konu Sahibi

  
package deneme;

import java.util.Scanner;

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



int i=0;
int a = 0;
int b =0 ;


for( i=0 ; i<5 ;i++){
if(a < 20){


System.out.print((i+1) + ". sayiyi giriniz= ");
a = scan.nextInt();

b = b+a;
System.out.println("toplam= "+ b);
}


else if( a >= 20) {
System.out.println("yanlis sayi girdiniz!");
break;
}
}


}
}


şimdi int a yı kullanıcan almak istedim yukarıda ilk başta int a; diye tanımladım. fakat eclipse hata mesaji verdi. int a = 0; diye tanımladığımda ise hata vermedi. şimdi anlamadığım ben a'yı neden burada sıfıra eşitliyorum. sonuçta dışarıdan alıyoruz. birde 20 den büyük bir sayi girdiğimde toplam yazısının çıkmasını nasıl engellerim.

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





< Bu mesaj bu kişi tarafından değiştirildi Guest-1585C216F -- 19 Ekim 2013; 21:00:00 >

H
12 yıl
Binbaşı

quote:

Orijinalden alıntı: Lotus Expeditor

Bloklardan dolayı;
 
class m{
public static void main(String args[]){
int a;
int i=0;
int b=20;
if (i < b) {
a=5;
}
System.out.print(a);
}
}

Ekrana bir şey yazılmayacaktır çünkü a if sınırları içinde deklare edilmiş. Fakat;
 
class m{
public static void main(String args[]){
int a;
int i=0;
int b=20;
if (i < b) {
a=5;
System.out.print(a);
}
}
}

Yukarıdaki durumda a deklare edilmiş ve istemcisi de if içinde olduğundan dolayı çalışacaktır.

Deklarasyon dediğimiz kısım int a; ifadesidir a = 5 ifadesi değil. Hepsinde de aynı yerde. Yani zaten kod blokları ve değişken kapsama alanı konusunda aynı yapıda olmasına rağmen C ile Java arasındaki farklılığı da gösterdim. Durumun bloklarla doğrudan alakası yok ki ayrıca if(true) örneğiyle de anlayabilirsiniz.

Verilen hata da belli. Java yerel değişkenlere sınıf değişkenlerine ve obje değişkenlerine yaptığı gibi ilk değer ataması yapmaz.

http://stackoverflow.com/questions/12320449/why-is-initialization-of-nested-loop-control-variables-a-must-in-java?rq=1

Ayrıca blok dışında tanımlanmış ve değer ataması yapılmış bir değişkene blok içinde değer atarsanız içteki bloktan çıkınca yine atadığınız değeri alırsınız.





< Bu mesaj bu kişi tarafından değiştirildi hckr -- 27 Ekim 2013; 17:51:20 >
Bu mesaja 1 cevap geldi.
H
12 yıl
Binbaşı

quote:

Orijinalden alıntı: Lotus Expeditor

Dedikleriniz doğru fakat deklarasyon kelimseinin anlamına bakmanızı öneririm. Birde biz aynı şeyi mi konuşuyoruz? :D

Evet.

http://docs.oracle.com/javase/tutorial/java/javaOO/variables.html

http://java.about.com/od/understandingdatatypes/a/declaringvars.htm

http://en.wikipedia.org/wiki/Declaration_%28computer_programming%29



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.