If sorgusu içinde sorgulanan değişkenin değerini değiştirmek ve Else

Başlatan certy, 26 Temmuz 2019, 00:03:37

certy

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 {
   .
   .
   .
}
TA1USS

ankyra

İ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.

RaMu

Sonraki döngü beklenir,
asm çıktısından kontrol edebilirsin veya
debugger ile çalıştırıp deneyebilirsin.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

certy

TA1USS

fatal16

@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ı.

Cemre.

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?




RaMu

@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.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

Elektroemre

@fatal16 nın dediği şekilde çalışması için "case 1:" den sonra "break" koymamak gerekiyor.

certy

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ş.
TA1USS

fatal16

@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 .

Cemre.