Giriş Yap Kayıt ol Online Üyeler Aktif Konular Arama Üyeler Forum Kuralları
Tahribat.Com | C Ve C++ Da Koşul Sintaksı Kafa Karışıklığım
Tahribat.Com Forumları
C - C++
      C Ve C++ Da Koşul Sintaksı Kafa Karışıklığım
Bu Bölümde yeni konu açmak için tıklayın Konuyu cevaplamak için tık...
Konu 15 Mayis 2011 (Pazar) 01:52 tarihinde açıldı. Kısayol | Alıntı yap | Özel Mesaj
ltcelik


Kayıt : 11 Mayis 2007
YENİGÜN MAALLESİ
Erkek Üye
 

genelde döngülerde şu çeşit bildirmlere raslıyorum

 

#include <iostream>
using namespace std;

int i,j;
char a[][80]={"Pazartesi","Sali","Carsamba",
"Persembe", "Cuma", "Cumartesi", "Pazar"};

void main()
{
   for (i=0;a[i][0];i++)
   {
      for (j=0;a[i][j];j++)
         cout << a[i][j];
      cout << "\n";
   }
}

*** for (i=0;a[i][0];i++)
***for (j=0;a[i][j];j++)

buralarda döngü koşulunda her hangibir karşılaştırma görünmediği halde  nasıl bir karşılaştırma gerçekleşiyor ve

program çalışıyor...

Bir de bu karakter dizge ve dizilerini olabilecek en zor bir şekilde anlatıyorlar her tarafta mk.. hep c/p kafa karışıklığım giden kadar beynim zkildi..


EPoX Af550G pro /2GB RAM/ winXP Pirated Edişın** özür dileyeni . . . 
15 Mayis 2011 (Pazar) 01:59 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
wking


Kayıt : 28 Mart 2010
Erkek Üye
 

Hocam dediğinden şunu anladım, içteki for döngüsünün {} parantezleri yok fakat nasıl çalışıyor.

if, else if, for, while, do while... bunların hepsini kullanırken eğer koşul sağlandığında çalışacak kod tek satırsa, {} parantezlerini koymana gerek yok, aşağıda olduğu gibi.

for (j=0;a[i][j];j++)
         cout << a[i][j];


www.sarkimgeldi.com - Ne yani senin de şarkın gelmedi mi? Herkesin şarkısı gelebilir. 
15 Mayis 2011 (Pazar) 02:14 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
ltcelik


Kayıt : 11 Mayis 2007
YENİGÜN MAALLESİ
Erkek Üye
 

wking bunu yazdı:
-----------------------------

Hocam dediğinden şunu anladım, içteki for döngüsünün {} parantezleri yok fakat nasıl çalışıyor.

if, else if, for, while, do while... bunların hepsini kullanırken eğer koşul sağlandığında çalışacak kod tek satırsa, {} parantezlerini koymana gerek yok, aşağıda olduğu gibi.

for (j=0;a[i][j];j++)
         cout << a[i][j];


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

hayır

(j=0;a[i][j];j++)
 

satırında a[i][j] terimin yanıda bir karşılaştırma operatörü olmadığı halde kod nasıl çalışıyor,

normalde bir <=, >=, == gibi şeyler olması gerkmezmi ya da konmadığındane anlama geliyor..


EPoX Af550G pro /2GB RAM/ winXP Pirated Edişın** özür dileyeni . . . 
15 Mayis 2011 (Pazar) 02:46 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
j4x


Kayıt : 16 Temmuz 2005
Istanbul
Erkek Üye
 

Karşılaştırma operatörü olması gerekmez. Mantıksal bi ifade olması gerekir.

2. for döngüsünü kullanarak harf harf yazdirmişsin zaten. C deki stringlerin sonunda '\0' karakteri yani null terminator oldugu ve ayni zamanda false degerine esit oldugu icin duracaktir.

Ayni şekilde ilk dizininde son elemanı 0 (false) olduğu için duruyor.


Eski gVeR. 
15 Mayis 2011 (Pazar) 12:41 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
wking


Kayıt : 28 Mart 2010
Erkek Üye
 

ltcelik bunu yazdı:
-----------------------------

wking bunu yazdı:
-----------------------------

Hocam dediğinden şunu anladım, içteki for döngüsünün {} parantezleri yok fakat nasıl çalışıyor.

if, else if, for, while, do while... bunların hepsini kullanırken eğer koşul sağlandığında çalışacak kod tek satırsa, {} parantezlerini koymana gerek yok, aşağıda olduğu gibi.

for (j=0;a[i][j];j++)
         cout << a[i][j];

 


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

hayır

(j=0;a[i][j];j++)

satırında a[i][j] terimin yanıda bir karşılaştırma operatörü olmadığı halde kod nasıl çalışıyor,

normalde bir <=, >=, == gibi şeyler olması gerkmezmi ya da konmadığındane anlama geliyor..


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

Dediğini şimdi anladım. qVeR'in de dediği gibi mantıksal bir ifade yeterli. Mesela while döngüsüyle sonsuz döngü yapmak isterken nasıl while(1) yazıyorsan, for döngüsünde de bu mantıksal ifade işe yarar.


www.sarkimgeldi.com - Ne yani senin de şarkın gelmedi mi? Herkesin şarkısı gelebilir. 
15 Mayis 2011 (Pazar) 17:30 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
ltcelik


Kayıt : 11 Mayis 2007
YENİGÜN MAALLESİ
Erkek Üye
 

Tamam anladım dizinin son elemanı  \0 olduğu için, genel olarak önerme FALSE =0 a düştüğü için döngüden çıkılıyor...

Teşekkürler TBT

 


EPoX Af550G pro /2GB RAM/ winXP Pirated Edişın** özür dileyeni . . . 
15 Mayis 2011 (Pazar) 18:35 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
bilmece


Kayıt : 29 Aralik 2009
Erkek Üye
 
bi örnekde ben verim int a; if(a) printf("a sıfır degil"); yada if(!a) printf("a sıfır");

 
16 Mayis 2011 (Pazartesi) 11:37 tarihinde yazıldı. Kısayol | Alıntı yap | Özel Mesaj
JPriest


Kayıt : 9 Mart 2007
İstanbul--Çanakkale
Erkek Üye
 

Sadece stringlerde değil, diğer tipteki dizilerde de dolaşırken var mı kontrolü yapılıyor orda. Varsa true yoksa false işte.

(a != null) yerine (a) yazsan yeterli.


Sen hiç kaval çaldın mı? 

[1]


Bu Bölümde yeni konu açmak için dıklayın Konuyu cevaplamak için tık...
Allah'a Havale Et Google Bookmark'a Ekle Yahoo'ya Ekle Stumbleupon'a Ekle Facebook'a Ekle Twitter'a Ekle   Google'da Ara : C ve C++ da koşul sintaksı kafa karışıklığım Favorilerime Ekle Yukarı Çık
Konuda 8 Mesaj Var.
Konu 521 Sefer Gösterilmiş.
2001-2012 © Tahribat Group - Her Hakkı Saklıdır. - ● Gizlilik İlkeleri ● Kullanım Koşulları ● İletişim