Blog Listem

12 Eylül 2012 Çarşamba

Axapta if ve parantez

Aşağıdaki blok hatalı mı?

            if (_ServiceShipment == B_SMAServiceShipment::B_Hand)
                if (!Personels.WithHand)
                    continue;
Ben hatalı olmadığını düşünüyodum. Çünkü ikinci if komutunun da continue ile birlikte tek komut olarak alınacağını sanıyordum. Ama öyle değilmiş. Parantez gerekiyor:

            if (_ServiceShipment == B_SMAServiceShipment::B_Hand)
            {
                if (!Personels.WithHand)
                    continue;
            }

2 yorum:

  1. if ifadesindeki koşul ifadesi doğru ise 1. ifade değil ise 2. ifade çalıştırılır. Eğer ikinci blokta yapıldığı gibi iki şartında doğrulanmasından sonra "continue" komutu çalıştırılma isteniyor ise if ifadesinin koşuluna her iki koşulda birleştirilerek konulabilir.

    YanıtlaSil
  2. tabii ki iki if birleştirilebilir. ama parantez olmadan yazıldığında 1. if'in false olması durumunda continue komutunun ikinci if ifadesine ait olduğu halde yine de çalıştırılıyor olması çok tuhaf...

    YanıtlaSil