Merhabalar. Örnek kodda a değişkeni 1 ise a'yı 1'den farklı herhangi bir sayıya eşitliyorum. Bu durumda else kısmı içinde kalan satırlar hemen mi çalışır, yoksa sonraki döngü mü beklenir?
if (a == 1){
a = 5;
}else {
.
.
.
}
İf teki şart doğru ise else kısmı çalışmaz. A nın değişmiş olması bir sonraki döngüde değerlendirilir.
Sonraki döngü beklenir,
asm çıktısından kontrol edebilirsin veya
debugger ile çalıştırıp deneyebilirsin.
@ankyra @RaMuTeşekkürler.
@certy Hocam eğer a=5 yapıp, a'nın 5 olduğu duruma döngüden çıkmadan gitmesini istiyorsanız switch-case kullanabilirsiniz.
#include <stdio.h>
int main(void) {
int x = 1;
switch (x)
{
case 1:
x = 5;
.
.
.
case 5:
printf("x=%d",x);
break;
}
return 0;
}
Tabi burada x'in 5 olduğu durum, 1 olduğu durumun altında yazılmalı.
Alıntı yapılan: fatal16 - 26 Temmuz 2019, 08:49:04@certy Hocam eğer a=5 yapıp, a'nın 5 olduğu duruma döngüden çıkmadan gitmesini istiyorsanız switch-case kullanabilirsiniz.
#include <stdio.h>
int main(void) {
int x = 1;
switch (x)
{
case 1:
x = 5;
.
.
.
case 5:
printf("x=%d",x);
break;
}
return 0;
}
Tabi burada x'in 5 olduğu durum, 1 olduğu durumun altında yazılmalı.
Emin misiniz?
(https://i.ibb.co/mzZyJVC/image.png) (https://ibb.co/f06NMzY)
@fatal16 switch case de dediğin gibi çalışmaz,
tekrar switch satırına gelinmesi lazım ki başka bir case e gidilebilsin.
Switch case aslında bir goto tablosu olarak çalışır,
ard arda yazılmış if koşulları gibi çalışmaz.
@fatal16 nın dediği şekilde çalışması için "case 1:" den sonra "break"
koymamak gerekiyor.
Alıntı yapılan: fatal16 - 26 Temmuz 2019, 08:49:04@certy Hocam eğer a=5 yapıp, a'nın 5 olduğu duruma döngüden çıkmadan gitmesini istiyorsanız switch-case kullanabilirsiniz.
#include <stdio.h>
int main(void) {
int x = 1;
switch (x)
{
case 1:
x = 5;
.
.
.
case 5:
printf("x=%d",x);
break;
}
return 0;
}
Tabi burada x'in 5 olduğu durum, 1 olduğu durumun altında yazılmalı.
Aslında öyle olması benim için sorun. :) Döngüden çıkıp sonraki döngüyü beklemesi tam olarak istediğim şey. Zaten tam da istediğim gibiymiş.
@Elektroemre 'nin yazdığı gibi case1'in sonuna break koymazsak (örnekteki gibi) case5'e girer ve ordan break yapar. Ama case1'de x=5 yaptıktan sonra diğer case'lere geçtiğimizde, case'in 5 olup olmadığını kontrol ediyormudu tam emin olamadım. Bir arkadaş derlerse tam öğrenmiş oluruz .
Üzgünüm...
(https://i.ibb.co/h7xs37m/image.png) (https://ibb.co/mDrJfDc)