Şimdi Ara

JAVAcılar ve JAVAcılara KATKIDA BULUNMAK İSTEYENLER BURAYA

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
57
Cevap
4
Favori
4.641
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 123
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Merhaba arkadaşlar, bu konuyu açmamdaki amaç hem bildiklerimi paylaşmak hem de siz arkadaşlarımızın bildiklerini paylaşmaları şeklinde JAVA Programlama ile kendimizi daha da geliştirmek.

    İlk paylaşımı ben yapayım :)

    static kelime ve bunun kullanımı

    Arkadaşlar eğer static kelimesi ben methodlarda kullanımına deyineceğim;

    public static int method_adi(int parametre)
    {
    // Methodun yapması gerekenler.
    }

    Yukarıdaki method arkadaşlar "static" kelimesinin kattığı anlam , sınıf (class) methodudur. Yani nesne bağımlı değildir. Bu methodu kullanmak için nesne oluşturmaya gerek yoktur.

    Çağırma şekli: int a = method_adi(parametre);


    ----------------------------------------------------------
    ----------------------------------------------------------

    public int method_adi(int parametre)
    {
    // Methodun yapması gerekenler.
    }

    Yukarıdaki method arkadaşlar "static" kelimesi yoktur. Bunun anlamı , nesne (object) tipi methodudur. Yani nesne bağımlıdır. Bu methodu kullanmak için nesne oluşturmaya gerek vardır..

    Çağırma şekli: method_adi nesne = new method_adi();
    int a = nesne.method_adi(parametre);


    Saygılarımla







  • tesekkurler. Bende katkıda bulunmak isterim.

    http://www.filesonic.com/file/465305474

    1. basit if
    2. basit if
    3. basit if ve && operatoru
    4. basit if ve casting
    5. basit if ve else if
    6. switch



    < Bu mesaj bu kişi tarafından değiştirildi xecox123 -- 2 Nisan 2011; 17:09:30 >
  • Teşekkürler, ben de java programming diye bir kitap var yabancı yazarı D.S. MALIK yazarı ondan takip ediyorum chapter 9 dayım. Sondaki programming exercises hepsini tek tek yapıyorum. Güzel kitap ingilizce ama ingilizceniz varsa çok güzel anlatıyor.
  • Arkadaşlar bildiğimiz gibi bir method ya da fonksiyon tek değer döndürür. Yani aynı anda iki farklı değer döndüremeyiz. Bu gibi yani birden fazla değer döndürme durumlarında C programlama dili bilen arkadaşlar varsa orada pointer dediğimiz işaretçileri kullanıyorduk ve bu sayede birden fazla değer döndürebiliyorduk tabi bu döndürme işlemleri void tipi method kullanarak yapabiliyorduk.

    Neden çünkü method değişkenleri yaşam döngüsü method çalıştığı anda başlar ve bitince biter. Bu neden pointer kullanarak adres içerisine atarak. Adresten çağırarak void tipli methodlarda birden fazla dönüş alabiliyorduk.

    JAVA da ise bunu pointer olmadığı için aşağıdaki gibi bir sınıf oluşturabiliriz. Bu sınıf dikkat edersek matematikteki sanal(karmaşık) sayıları temsil etmekdir. Bildiğimiz gibi karmaşık sayıların 5+2i gibi bir reel bir de sanal kısmı vardır. Tabi normal return methodlar tek değer döndükleri için, kodda görüldüğü gibi Complex adında sınıf oluşturuyoruz ve kurucu methoduna dikkat edersek i ve r adında değişkenler tanımlanmış. Bunlardan i => sanal kısmına, r => reel kısmına karşılık gelmektedir.

    dikkat edersek static kelimesi kullanılmamış yani nesne bağımlı methodlar var burada.

    ve main methoda baktığımızda

    Complex c = new Complex(3, 5);

    yukarıdaki gibi Complex tipinde nesneler oluşturulor Complex sınıf tipinde nesneler oluşturuluyor bir başka değişle. Bu da nesne bağımlı methodlar olduğunu gösteriyor.

    Eğer static kelimesi olsaydı nesne tanımlamaya gerek kalmayacaktı.

    Saygılarımla..

    Paylaşımlarım devam edecek...

    /** A class to represent Complex Numbers. A Complex object is 
    * immutable once created; the add, subtract and multiply routines
    * return newly-created Complex objects containing the results.
    *
    * @author Ian F. Darwin, inspired by David Flanagan.
    * @version $Id: Complex.java,v 1.3 2004/05/13 22:28:59 ian Exp $
    */
    public class Complex {
    /** The real part */
    private double r;
    /** The imaginary part */
    private double i;

    /** Construct a Complex */
    Complex(double rr, double ii) {
    r = rr;
    i = ii;
    }

    /** Display the current Complex as a String, for use in
    * println() and elsewhere.
    */
    public String toString() {
    StringBuffer sb = new StringBuffer().append(r);
    if (i>0)
    sb.append('+'); // else append(i) appends - sign
    return sb.append(i).append('i').toString();
    }

    /** Return just the Real part */
    public double getReal() {
    return r;
    }
    /** Return just the Real part */
    public double getImaginary() {
    return i;
    }
    /** Return the magnitude of a complex number */
    public double magnitude() {
    return Math.sqrt(r*r + i*i);
    }

    /** Add another Complex to this one
    */
    public Complex add(Complex other) {
    return add(this, other);
    }

    /** Add two Complexes
    */
    public static Complex add(Complex c1, Complex c2) {
    return new Complex(c1.r+c2.r, c1.i+c2.i);
    }

    /** Subtract another Complex from this one
    */
    public Complex subtract(Complex other) {
    return subtract(this, other);
    }

    /** Subtract two Complexes
    */
    public static Complex subtract(Complex c1, Complex c2) {
    return new Complex(c1.r-c2.r, c1.i-c2.i);
    }

    /** Multiply this Complex times another one
    */
    public Complex multiply(Complex other) {
    return multiply(this, other);
    }

    /** Multiply two Complexes
    */
    public static Complex multiply(Complex c1, Complex c2) {
    return new Complex(c1.r*c2.r - c1.i*c2.i, c1.r*c2.i + c1.i*c2.r);
    }

    /** Divide c1 by c2.
    * @author Gisbert Selke.
    */
    public static Complex divide(Complex c1, Complex c2) {
    return new Complex(
    (c1.r*c2.r+c1.i*c2.i)/(c2.r*c2.r+c2.i*c2.i),
    (c1.i*c2.r-c1.r*c2.i)/(c2.r*c2.r+c2.i*c2.i));
    }

    /* Compare this Complex number with another
    */
    public boolean equals(Object o) {
    if (!(o instanceof Complex))
    throw new IllegalArgumentException(
    "Complex.equals argument must be a Complex");
    Complex other = (Complex)o;
    return r == other.r && i == other.i;
    }

    /* Generate a hashCode; not sure how well distributed these are.
    */
    public int hashCode() {
    return (int)( r) | (int)i;
    }

    public static void main(String[] args) {
    Complex c = new Complex(3, 5);
    Complex d = new Complex(2, -2);
    System.out.println(c);
    System.out.println(c + ".getReal() = " + c.getReal());
    System.out.println(c + " + " + d + " = " + c.add(d));
    System.out.println(c + " + " + d + " = " + Complex.add(c, d));
    System.out.println(c + " * " + d + " = " + c.multiply(d));
    System.out.println(Complex.divide(c, d));
    }
    }



    < Bu mesaj bu kişi tarafından değiştirildi AERN -- 24 Mart 2011; 0:45:41 >




  • Düşünceniz çok güzel ama javaya biraz hevesi olan varsa da kaçar buradan. :)

    Önce çalışılacak ortamın hazırlanması ve tanıtılması, sonra değişken ve operatörlerin tanıtılması...vs .vs. konulara ortadan dalınca olmuyor.

    örneğin "bildiğimiz gibi bir method ya da fonksiyon tek değer döndürür" demişsiniz mesela. sınıf ne ? metod (fonksiyon) ne ?

    Sonra kodlar daha sade olmalı, (http://www.osnews.com/story/20076/Multiple_Return_Values_in_Java )

    comment olacaksa türkçe olmalı (bence);
  • herşeyi baştan anlatmak güzeldir ama o kadar sabıra ve özellikle zamana sahip pek az kişi var forumlarda. Bu konu en az temel java veya oop bilgisi olanlar için daha uygundur. emeğinize sağlık.
  • update

    http://www.filesonic.com/file/465305474

    icerik :

    1. basit if
    2. basit if
    3. basit if ve && operatoru
    4. basit if ve casting
    5. basit if ve else if
    6. switch

    Gergozen ve SwordBreaker tavsiye ve elestirileriniz icin cok tesekkurler. Bizde uygun
    sartlar altında en basitten java nın temel kavramları uzerine bildiklerimizi aktarmaya
    calisiriz.



    < Bu mesaj bu kişi tarafından değiştirildi xecox123 -- 2 Nisan 2011; 17:10:27 >
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • aslında biraz bilgi birikimi olan ya da uğaraşn bir ilgilensin istedim :)) biraz da çaba göstersin :) öğrenme gayreti oluşturabilir, class nesne fonksiyon dediğimiz şeylerin ben ayrıntısını söyledim :)
  • teşekkürler
    package be5021; 
    import javax.swing.*;
    public class be502 {//class bloğu başlangıcı
    public static void main(String[] args) {//main() fonksiyon başlangıcı
    //Integer a=new Integer(0);
    //Integer b=new Integer(0);
    int a,b;
    a=Integer.parseInt(JOptionPane.showInputDialog("1. tamsayıyı giriniz"));
    b=Integer.parseInt(JOptionPane.showInputDialog("2. tamsayıyı giriniz"));

    System.out.println(a+"+"+b+"="+(a+b));
    JOptionPane.showMessageDialog(null, a+"+"+b+"="+(a+b),"pencere başlığı",JOptionPane.INFORMATION_MESSAGE);
    }//main() fonksiyon sonu
    }//class bloğu sonu


    Yukarıdaki not http:\\websitem.gazi.edu.tr\nursal adresinden alıntıdır.
    Sadece eğitim amaçlı kullanılmak üzere alınmıştır.
    Yüksek lisans eğitiminde aldığım derse aittir.


    java programlama için netbeans kullanabilirsiniz.

    http://www.netbeans.com/ -> bu linkten ücretsiz olarak indirebilirsiniz.

    bilgilerimizi paylaşacağız. Arkadaşlar. İlk Bahsedeceğim konu;



    quote:

    Orijinalden alıntı: xecox123

    update

    http://uploading.com/files/d454998m/javavideo.rar/

    include :

    1. basit if
    2. basit if
    3. basit if ve && operatoru
    4. basit if ve casting

    Gergozen ve SwordBreaker tavsiye ve elestirileriniz icin cok tesekkurler. Bizde uygun
    sartlar altında en basitten javanın temel kavramları uzerine bildiklerimizi aktarmaya
    calisiriz.







  • YAPISAL PROGRAMLAMA İLE NESNE YÖNELİMLİ PROGRAMLAMA YAKLAŞIMLARI ARASINDAKİ FARKLAR



    Bir yazılım tasarlanırken, gereksinimleri yazılımın gerçekleştireceği işlemler/görevler açısından incelemek en alışılmış yaklaşımdır. Bu yaklaşımda, yazılımın yapması gereken işlemler üzerinde yoğunlaşılır. Gereksinimlere göre ayrıştırılan bir yazılımda oluşan birimler arasında veri paylaşımı yoğunluktadır. Yazılımın gerçekleştireceği işlemlere göre ayrıştırma başlangıçta kolaylık sağlasa da, veri paylaşımının çok olması gereksinimlerdeki küçük değişikliklerin bile yazılımda kapsamlı değişiklikler yapılmasını gerektirir. Bu durum hem yazılımın geliştirilmesi hem de bakımı aşamalarında sorun yaratabilecek bir husustur. Yapısal Tasarım-programlama ve Nesne Yönelimli Tasarım-programlama arasındaki fark bu noktada ortaya çıkmaktadır:

    Yapısal Tasarım(Structured Design) yaklaşımına göre; Yazılım geliştirme sürecinde gereksinim analizi (requirements analysis) aşamasında yazılımın yerine getireceği iş gereksinimleri(görevler) belirlenir. Ortaya çıkarılan görevler daha sonra bir ya da birden fazla fonksiyon ile işin yerine getirileceği hale dönüştürülür. Bu dönüşüme yapısal tasarım (design) denir. Tasarımda bulunan fonksiyonlar da kodlama safhasında kodlanırlar. Kodlanma sırasında programcı, fonksiyonun yerine getireceği görevi (task), ardışıl ufak adımlara böler ve bu adımları da tek tek kodlar. Dolayısıyla yapısal tasarım ve programlama yaklaşımı, önce iş ihtiyaçlarının fonksiyonel ayrışma ile fonksiyonlara dönüştürülmesi, daha sonra da her bir fonksiyonun, ufak adımlarla kodlanması prensibi üzerine çalışır. Diğer deyişle Yapısal tasarım ve programlama yaklaşımına göre amaç; problemi alt parçalara bölerek bu parçaların çözümlerinin birleştirilmesidir. Bu yönüyle parçala fethet (Divide and conquere) yaklaşımı olarak kabul edilebilir.

    Nesne Yönelimli Tasarımda ise geliştirilecek yazılım olarak ele alınan problem, nesneler ve nesnelerin sorumlulukları açısından incelenir. Örneğin; bir öğrenci bilgi sisteminde öğrenci, ders ve öğretim üyesi nesneler, derse kayıt olma ve ders verme gibi işlemler ise nesnelerin sorumluluklarıdır. Bu yaklaşımda tasarım, yapılması gereken işlemler yerine, işlemlerin üzerinde çalışacağı nesneler üzerinde yoğunlaşır. Böylece, yapısı daha güçlü ve değişikliklere daha uygun yazılımlar oluşturulması amaçlanmaktadır. Bu yaklaşımın önceki yaklaşımdan temel farkı, tasarımın odak noktasının işlemlerden nesnelere yani veriye değiştirilmesidir.
     Gerçek dünya, nesnelerden oluşmaktadır.
     Çözülecek problemi oluşturan nesneler, gerçek dünyadaki yapılarına benzer şekilde bilgisayarda modellenmelidir (Soyutlama, nesneler ile yapılır).
     Nesne:
    • Özellikler (Nitelikler veya durum bilgileri)
    • İşlemler (Davranışlar ve yetenekler)
     Nesneye Yönelimli Tasarım ile;
    • Gerçek dünya çok daha doğru ve gerçekçi bir şekilde modellenebilir.
    • Daha “kaliteli” yazılımlar oluşturulabilir.
    • Günümüzün ve yakın geleceğin artan ihtiyaçlarına daha uygun, takım çalışmasına yatkın; çalışma, yönetme ve çözüm üretme olanakları sağlanabilir.



    < Bu mesaj bu kişi tarafından değiştirildi AERN -- 26 Mart 2011; 16:20:50 >




  • Fonksiyonlar Nedir ?

    Arkadaşlar, fonksiyonlar , yazılım tasarımında belli bir işi yapan program parçalarıdır. Bunun kullanım amacı, daha hızlı , etkili ve güvenli çalışan programlar üretmektir.Bu sayede yazılımcı olarak bizlerde her hangibir hata oluştuğunda bunu kolaylıkla bulabiliriz. Bir üstteki paylaştıklarımdan hareketle biz arkadaşlar nesne yönelimli programlama üzerine çalışacağız. Yani nesneler ve her nesnenin görevleri yani fonksiyonları olacak şekilde yazılım tasarımı yapacaığız.

    Fonksiyon Çeşitleri:
    a)Değer döndüren Fonksiyonlar (return functions)
    b)Değer döndürmeyen Fonksiyonlar (void functions)

    a)

    Örnek bir toplama fonksiyonu, toplama işleminde bildiğimiz gibi en az iki tane sayı gereklidir.
    *static anlamı arkadaşlar bir üst konuda bahsetmiştim oradan öğrenebilirsiniz.

    public static int toplama(int a,int b)
    {
    int sonuc;
    sonuc = a+b;
    return sonuc;
    }

    yukarıdaki fonksiyonu inceleyelim. Bu fonksiyon return deyimi olduğu için değer döndüren fonksiyondur. Döndürdüğü değer kırmızı ile görünen int anlamı ile int tipinde yani tam sayı tipinde değer döndüren fonksyiondur. (int a, int b) ifadesi ise dışarıdan int tipinde a ve b değişkenlerini yani parametrelerini almasını ifade eder.

    Bu fonnksiyonun main method da çağırılması static olması sebebiyle sınıf bağımlı methoddur ve aşağıdak gibi çağırılır.

    toplama(20,15);

    sonuç olarak denerseniz. 35 sonucunu göreceksiniz

    şimdi dilerseniz kullanan programı yazalım,

     

    package alp;


    public class Main {


    public static int toplama(int a, int b)
    {

    int sonuc = a+b;
    return sonuc;

    ya da

    return a+b;

    }

    public static void main(String[] args) {

    int sayi1=10;
    int sayi2=25;

    int toplam = toplama(sayi1,sayi2);

    System.out.println("Sayıların toplamı:"+toplam);



    }

    }






  • Paylaşımlarım devam edecek, siz değerli javaya gönül vermiş arkadaşlarım da paylaşımda bulursa çok sevinirim. Forumu kullanan yazılımcı arkadaşlarımız için faydalı olacağı düşüncesindeyim. Karşılaştığımız hatalar ve çözümleri konularında da seviye farketmeden yaşadıklarınızı yazabilirsiniz.

    Saygılarımla
  • update

    http://www.filesonic.com/file/465305474

    bilgi : sunumlarda ses yoktur, sadece java icin eclipse kullanımı, kodun girisi ve islem sonucu gosterilmektedir.

    icerik :

    1. basit if
    2. basit if
    3. basit if ve && operatoru
    4. basit if ve casting
    5. basit if ve else if
    6. switch



    < Bu mesaj bu kişi tarafından değiştirildi xecox123 -- 2 Nisan 2011; 17:11:07 >
  • Arkadaşlar bazı tavsiyelerim olacak;

    1-İngilizceniz anlayabilicek seviyede olsun. Çünkü help dosyaları, diğer java kaynaklarının çoğu ingilizce ve biliyorsunuz zaten değişken isimleri ve açıklamalar dışında sizin yazacağınız programın da komut ve kodları ingilizce bu nedenle ingilizce çok önemli.
    2-Java programlama dilinde program yazarken ilk önce kaba taslak da olsa bir algoritma yani programın nasıl yapılacağı işlem adımları gibi yaparsanız sizin için daha faydalı olacaktır.
    3-Hataları daha rahat bulabilmek için programı tek bir main methodu dışında ayrı ayrı projede classlar oluşturarak parçalarrsanız oluşabilicek hataları daha çabuk farkeder ve çözersiniz.



    Ayrıca bu konuya her türlü java ile ilgili sorularınızı,sorunlarınızı,önerilerinizi,bilgi paylaşımları ile zengilşetirip forumda bilgi alışverişini güçlendirebiliriz.
  • http://mail.baskent.edu.tr/~20410964/

    Bi ara kursta javaya giriş dersi vermiştim. Burada sunumlar var. Umarım birilerine yardımım olur :)
  • Teşekkürler yardımcı olacaktır
    quote:

    Orijinalden alıntı: yeat

    http://mail.baskent.edu.tr/~20410964/

    Bi ara kursta javaya giriş dersi vermiştim. Burada sunumlar var. Umarım birilerine yardımım olur :)
  • Final data alani
    Kendi calistiklarimdan bir ornek vermek istiyorum

    Oncelikli olarak program icerisinde bir alanin degerini degistirmek istemeyebiliriz. Bunun icin final data alanlarina ihtiyac duyariz. Simdi bir ornek yazacagim.


    public class Dikdortgen {

    public final double en;
    public final double boy;

    // Not Yukaridaki final kalkarsa main sinifinda b1.en = 5; yaparak atama yapabiliriz.


    public Dikdortgen(){
    en = 0;
    boy = 0;
    }

    public Dikdortgen (double x, double y){

    en = x;
    boy = y;

    }

    public double alaniHesapla(){
    return en * boy;



    }

    }



    public class Main {

    /**
    * @param args the command line arguments
    */

    public static void main(String[] args) {
    Dikdortgen b1 = new Dikdortgen(4.0,10.0);
    Dikdortgen b2 = new Dikdortgen(3.0,10.0);

    System.out.println("alan " + b1.alaniHesapla() );
    System.out.println("alan " + b2.alaniHesapla() );

    }

    }

    /* NOT b1.en = 5; En alanina atama yapamiyoruz final ile olusturulan data alanina bir kere deger atandiginda
    sabit kalir ve buradaki ornekteki gibi tekrar atama yapilmaz */



    < Bu mesaj bu kişi tarafından değiştirildi mngtolga -- 9 Nisan 2011; 16:06:03 >




  • Paylaşımınız için teşekkürler, bu hafta yüksek lisans vize sınavlarım var, o yüzden fazla örnek veremiyorum.

    16 nisan tarihinden sonra daha aktif katılacağım
  • Kendi çalıştıklarımdan switch ifadesi ile ilgili aldığım notlardan bir kısımi oldukca yalin bir sekilde not almistim. Heralde anlamayan olmayacaktir.
    Switch ifadesini şu şekilde gösterebiliriz.

    Switch (sonucu sabit bir integer olan ifade)
    case<int sabiti1> : ifade1;
    case<int sabiti2> : ifade2;
    case<int sabiti3> : ifade3;
    default:ifade4; (eger hiç birine eşit değilse default çalişssin)
    Burada switch ifadesinin içindeki ifade hesaplanmakta ve case içindeki hangi int sabitine eşitse o ve ondan sonraki case ifadeleri çalışmaktadir. Örneğin switch içindeki ifade int sabiti2 ye eşit ise. O ve ondan sonra gelen case ifadeleri çalışmaktadir.


    Örneğin:

    int ay = 6;

    switch (ay) {

    case 12 : System.out.println(“Aralik”);
    case 11 : System.out.println(“Kasim”);
    case 10 : System.out.println(“Ekim”);
    case 9 : System.out.println(“Eylül”);
    case 8 : System.out.println(“Agustos”);
    case 7 : System.out.println(“Temmuz”);
    case 6 : System.out.println(“Haziran”);
    case 5 : System.out.println(“Mayis”);
    case 4 : System.out.println(“Nisan”);
    case 3 : System.out.println(“Mart”);
    case 2 : System.out.println(“Subat”);
    case 1 : System.out.println(“Ocak”);
    default : System.out.println(“Son”);

    (Bu programi çaliştirdiğimizdaki aşagidaki sonucu vermektedir)

    Run:
    Haziran
    Mayis
    Nisan
    Mart
    Subat
    Ocak
    Son
    Örneğin yukaridaki (ay) değişkenini değiştirirsek (ay) = 1; bu sefer aşagidaki gibi sonuc cikacaktir.
    Run:
    Ocak
    Son
    Bu sefer (ay) değişkenine burada olmayan bir değer verelim (ay) = 15; bu sefer default çalişacaktir hiç birisi olmadigi için.


    ÖrneğinYukaridaki programi değiştirelim if else ifadelerinde hangi if ifadesi dogru olursa o ifade çalişmaktaydi. Switch ifadesinde bunu nasil yapariz? Her case ifadesinin sonuna break ifadesi koymaliyiz.
    Örneğin:

    int ay = 5;

    switch (ay) {

    case 12 : System.out.println(“Aralik”); break;
    case 11 : System.out.println(“Kasim”); break;
    case 10 : System.out.println(“Ekim”); break;
    case 9 : System.out.println(“Eylül”); break;
    case 8 : System.out.println(“Agustos”); break;
    case 7 : System.out.println(“Temmuz”); break;
    case 6 : System.out.println(“Haziran”); break;
    case 5 : System.out.println(“Mayis”); break;
    case 4 : System.out.println(“Nisan”); break;
    case 3 : System.out.println(“Mart”); break;
    case 2 : System.out.println(“Subat”); break;
    case 1 : System.out.println(“Ocak”); break;
    ( not: default ifadesine ihtiyac olmadigindan onu cikardik)

    System.out.println(“program akisi buradan devam eder”);

    (Bu programi çaliştirdiğimizdaki aşagidaki sonucu vermektedir)

    Run:
    Mayis


    Ay değişkeni hangisine eşit olursa o ifade çalışacak ve break ifadesi çalışacak ve program akisi case nin disina cikacaktir.



    < Bu mesaj bu kişi tarafından değiştirildi mngtolga -- 9 Nisan 2011; 16:47:22 >




  • Tekrarlama Kontrol yapilari : while, do while ve for



    Tekrarlama kontrol yapilari bir koşul sağlandiği sürece tekrar tekrar çalıştırılmasini sağlar.Tekrar tekrar çalışan program yapisina döngü denmektedir. Her bir dönüşe ise iterasyon veya tur denmektedir. Koşul sağlandiği sürece döngü tekrar tekrar çalışmaktadir.
    Nezamanki belirtilen koşul sağlanmazsa program akışı döngüden çıkmaktadir.
    Java 3 tane tekrarlama ifadesi sunmaktadir bunlar while, do while ve for ifadeleridir.

    While ifadesindeki koşul sağnadiği sürece ifadenin gövdesindeki kodlar tekrar tekrar çalışmaktadir.

    while(kosul)
    kosul saglandikca tekrar tekrar calisacak ifade;
    Not: Buradaki kosul ifadesinin sonucu if ifadesindeki gibi boolean yani true yada false olmalidir. While ifadesindeki kosul dogru oldugu sürece kosul ifadesinin gövdesindeki kod caliscaktir. Kosul ifadesi yanlis ise while ifadesinin gövdesindeki code hic calismayacaktir. Yada kosul ifadesinin sonucu ne zaman yanlis olursa while ifadesinin gövdesi calismayacaktir ve program akisi while ifadesinden sonra devam edecektir. Tipki if ifadesinde oldugu gibi while ifadesinin gövdesine tek bir tane ifade yazabiliriz. Eger 1 den fazla ifade yazmak istiyorsak parantezler içine almaliyiz. Gelenek olarak tek bir ifadede olsa while ifadesinin gövdesi parantez içine alinir.

    İnt sayi = 3;

    While(sayi < 100) {
    System.out.println(“sayinin degeri” + sayi);
    Sayi = sayi * 3;
    System.ot.println(“sayinin yeni degeri” + sayi);

    System.ot.println(“sayinin dongu disindaki degeri” + sayi);

    Run:
    Sayinin degeri 3
    Sayinin yeni degeri 9
    Sayinin degeri 9
    Sayinin yeni degeri 27
    Sayinin degeri 27
    Sayinin yeni degeri 81
    Sayinin degeri 81
    Sayinin yeni degeri 243
    Sayinin dongu disindaki degeri 243

    Öncelikle sayi adinda ve ilk degeri 3 olan bir integer tanimladik İnt sayi = 3; . Daha sonra While(sayi < 100) diye bir kosul ifadesi yazdik. Yani sayinindegeri 100 den kucuk oldugunda gövdesindeki kodlari çalıştır anlamina geliyor. Daha sonraki satirla System.out.println(“sayinin degeri” + sayi); mevcut sayinin degerin ekrana yazdiriyoruz ve ekrana ilk deger olarak Sayinin degeri 3 yaziyor. Daha sonraki satirda Sayi = sayi * 3; sayi değişkenini 3 le çarpip kendisine atiyoruz. Daha sonraki satirla System.ot.println(“sayinin yeni degeri” + sayi); sayinin yeni degerini ekrana yazdiriyoruz yani Sayinin yeni degeri 9 . En son olarak program sonundaki döngü degerini ekrana yazdiriyoruz.
    (eger while ifadesi While(sayi < 110) olsa idi sonuc . Sayinin dongu disindaki degeri 110 olurdu.

    Do while ifadesi:

    while ifadesinde kosul ifadesi yanlis yani false ise while ifadesinin gövdesi hiçbir zaman çalışmaz. Do while ifadesinde ise önce do while ifadesinin gövdesi çalışmakta ondan sonra kosul kontrol edilmektedir. Dolayisi ile do while ifadesinin kosulu yanlis bile olsa do while ifadesinin gövdesi bir kez çalıştırılmış olmaktadir.

    Bunu şu şekilde gösterebiliriz.

    do
    İfade1; (burada öncelikli olarak ifadeler ifade1 çalışacaktir)
    while(kosul) (daha sonra while ifadesi çalışacaktir while ifadesinin sonucu dogru olursa tekrar tekrar calisacaktir. Nezamanki kosul ifadesinin sonucu yanlis dönecek program akisi do while ifadesinin disina cikacaktir.)

    {

    int sayi = 3;

    do {

    System.out.println(“sayinin degeri” + sayi);
    Sayi = sayi * 3;
    System.out.println(“sayinin yeni degeri” + sayi);
    }While(sayi < 100)
    System.ot.println(“sayinin dongu disindaki degeri” + sayi);

    Run:
    Sayinin degeri 3
    Sayinin yeni degeri 9
    Sayinin degeri 9
    Sayinin yeni degeri 27
    Sayinin degeri 27
    Sayinin yeni degeri 81
    Sayinin degeri 81
    Sayinin yeni degeri 243
    Sayinin dongu disindaki degeri 243

    Burada öncelikle System.out.println(“sayinin degeri” + sayi); ifadesi calismakta ve ekrana yazilmatadir. Daha sonra Sayi = sayi * 3; ifadesi çalışarak Sayinin yeni degeri 9
    Sonucuna ulasmaktayiz . daha sonra While(sayi < 100) ifadesine bakilmakta 9 buyukmu 100 den hayir. Tekrar en yukari System.out.println(“sayinin degeri” + sayi); a gecti ve ekrana sayinin yeni degeri 9 olarak yazdi ve bu işlem bu sekilde devam etti. NOT: yukaridaki sayinin degerini 100 yaparsak int sayi = 110; Sonuc aşagidaki gibi olucaktir.

    Sayinin degeri 110
    Sayinin yeni degeri 330
    Sayinin dongu disindaki degeri 330




  • 
Sayfa: 123
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.