javada hata?

ermess
09-03-2011, 21:45   |  #1  
OP Üye
Teşekkür Sayısı: 0
57 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

 
package asal
 
import java.util.Scanner;
public class Main {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int i,sayi;
            Scanner in=new  Scanner(System.in);
            sayi=in.nextInt();
           boolean as;
           for(i=2; i<=sayi/2; i++)  if((sayi%i)==0) { as=false;
           break;
        } }
    if(as==true)  System.out.println("sayi asaldir");
else System.out.println("sayi asal degildir");
   
 
        // TODO code application logic here
    }
}
arkadaşlar yukarıdaki kod java da klavyeden girilen sayinin asal olup olmadigini araştıran kod..dogru oldugunu düşünüyorum ancak "if(as==true)" satırında hata veriyor ..yardımci olursaniz sewnirim?

muh34
09-03-2011, 22:58   |  #2  
Yıllanmış Üye
Teşekkür Sayısı: 0
215 mesaj
Kayıt Tarihi:Kayıt: Eki 2010

Java programlama dili bir çok konuda destek sağladığı gibi programcılara kod yazarken minimum hata yapma konusunda da yardımcı olmaktadır.Programınız icerisinde java derleyicisi,as boolean degiskeninin herhangi bir durum icerisinde true degerine sahip olacagını bilemez.(ki su durumda as degeri hic bir durumda true degildir).
Dolayısıyla java da tanımladıgınız her nesne veya primitif tipteki ornekler icin ilk deger ataması yapmanız gerekmektedir.Dolayısıyla boolean as; ifadesindeki satıra as=true; ataması yapmanız beklenir.Bu sayede derleyici programınızı guvenle calıstırarak bir takım belirsizlikleri program basında onlemiş olacaktır.

Başarılar

Kapalı Hesap (153535)
09-03-2011, 23:00   |  #3  
Kapalı Hesap
Teşekkür Sayısı: 27
2,297 mesaj
Kayıt Tarihi:Kayıt: Eki 2009

Doğru kod aşağıdaki gibi sanırım senin hatan iki bool değişkenini bibirine eşitlemekten kaynaklanıyor.
import java.util.Scanner;
class program{
 public static void main(String[] args){
  Scanner tara=new Scanner(System.in);
  int i;
  int sayi; 
  sayi=tara.nextInt();
  for(i=2;i<=sayi/2;i++)
  {  
      if((sayi%i)==0)
   {     
     System.out.println("sayi asal degildir"); break;
   }
      else
      {
       System.out.println("sayi asaldir");
      }
  }
    
  
 }
}

Kapalı Hesap (153535)
09-03-2011, 23:02   |  #4  
Kapalı Hesap
Teşekkür Sayısı: 27
2,297 mesaj
Kayıt Tarihi:Kayıt: Eki 2009

muh34 sana gönderdiğim mesaja bakmadın mı?

ermess
09-03-2011, 23:50   |  #5  
OP Üye
Teşekkür Sayısı: 0
57 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

tm anladim yardimlarniz için tşklr

ermess
10-03-2011, 00:35   |  #6  
OP Üye
Teşekkür Sayısı: 0
57 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

verdigin kodda calişiyor ancak sayi asaldir dan sonrada break kullansak daha iyi olur sanirim..tek sefer yazdırmasi için