C/C++ Programlama Hilleleri ve İpucları
1- For dongusu diğer dillere oranla C dili ve türevi olan dillerde fazlası ile esnektir ve programcının hayal güçünü programlamaya yansıtır.
C de klasik olarak for dongusu şöyledir
for (i=0;i<=100;i++)
fakat istenirse for döngüsü parçalana bilir
Örnek
int i=0;
for(;i<=100;i++)
Yukarıdaki örnekte döngünün döngü değişkenin ilk değeri değişken tanınlanırken verilmiştir ve döngü içerisinde tekrar edilmesine gerek yoktur
C++ da şöyle bir tanımlada da hata yoktur fakat C de hata dır.
for(int i=0 ;i<=100;i++)
istenirse for döngüsü while döngüsü şeklinde de kullanıla bilir.
Örnek
int i=0;
for(;i!=100 ![]()
i++;
for döngüsünün gövdesinin olması zorunlu değildir.
for(;;);
bu sonsuz bir döngü demek tir.
2- Koşul Operatörü (?)
Aşağıdaki program Kullanıcıdan bir sayi girilmesini ister ve girilen sayının +mı -mi 0 mı olduğunu bulur
int x;
printf(”Sayi Giriniz\n”);
scanf(”%i”,&x);
x <0 ? printf(”\nNegatifsayi”) : x >0 ? printf(”\nPozitif Sayi”) : printf(”\nSifir”);
aynı işlemi if ile yapmak istersek
printf(”Bir sayi Giriniz”);
scanf(”%d”,&i);
if(i<0)printf(”Negatif”);
if(i>0)printf(”Pozitif”);
else
printf(”Sıfır”);
? Operatörü ile birlikte mantıksal operatörlerde kullanıla bilir
Örnek
Aşağıdaki kod üç tamsayıyı karşılaştırıp en büyüğünü ekrana yazar
x >y && z ? printf(”%i”,x) : y > z ? printf(”%i”,y) :printf(”%i”,z);
#define ile makrolarda kullanıla bilir
#define Buyuksayi(s1,s2,s3)((s1>s2)&&(s1>s3)? s1 :(s2>s3)? s2 :s3)
Diğer örnek ise sayının tekmi? çiftmi olduğunun bulunması
s % 2 ? printf(”Tek”):printf(”Cift”);
? Operatörü fonksiyon çağrısı içinde kullanıla bilir !
scanf(”%d%d”,&i,&j);
printf(”\nBuyuk Sayi%d”,i>j ? i : j);
Koşul operandı fonksiyondan dönüşte de kullanıla bilir
return(x<y?10:20);
Hüseyin Bora ABACI
0 Yanıt, “C/C++ Hileleri”