Aynı eyleme neden olan koşullarda birçok "veya" (||)'dan kaçmak mümkün müdür? - sayfa 8

 
paladin80 :

Programlarımda çok fazla if-s ile böyle bir yapı kullanıyorum, ilk etapta diğerlerinden daha sık false verecek koşulları koyuyorum:

Ve eğer gerçekten çok fazla if-s kontrol etmeniz gerekiyorsa, bunun gibi bir şey:
Teşekkürler Maksim! Ama bu iyi değil çünkü. sahip olduğum farklı koşullar mantıkta veya parametrelerde karşılaştırılamaz!
 
alsu :

Hayır, bu şekilde yürümez. İlk olarak, sadece bir noktalı virgül (yani boş bir ifade) olsa bile if() öğesinden sonra bir şey olmalıdır. İkincisi, if'lerinizden hangisine atıfta bulunmayı amaçladınız? Yalnızca ikincisi içinse (yazdığınız gibi), Eylem yalnızca A, B ve C'nin yanlış olması koşuluyla D koşulu doğruysa yürütülür. Mantığı net bir şekilde görebilmeniz için kaşlı ayraçlar kullanmak her zaman iyi bir fikirdir.

Vurguladığım şey mümkünse, bunu yapmak iyi olur:

 if (!A && !B && !C && !D) ;//пустой оператор
else Action();

  

Nasıl? Belki? -------------------- Kodda kontrol edildiğinde derleyici bir uyarı verir;

';' - noktalı virgül beklenmeyen C:\Program Files\

Çalışırsa, bir uyarıya katlanmak için mi?!

 
borilunad :

Vurguladığım şey mümkünse, bunu yapmak iyi olur:

Nasıl? Belki? -------------------- Kodda kontrol edildiğinde derleyici bir uyarı verir;

';' - noktalı virgül beklenmeyen C:\Program Files\

Çalışırsa, bir uyarıya katlanmak için mi?!

 if (!A && !B && !C && !D) return ( 0 ); //закончение действия программы
else Action();
 
paladin80 :

Çok teşekkürler! Çok basit olmalı!

Doğru, dönüş (0) kendisinden sonra başka hiçbir şeyin çalışmasına izin vermediğinden, bu bloğu başlangıcın sonuna koymak zorunda kaldım.

 
Hızını hiç ölçen var mı? )))
 
TheXpert :
Hızını hiç ölçen var mı? )))

Şimdi ölçü alıyorum!

Sonunda dondu! 17.26 çıktı! Bu, test cihazında yarım yıl boyunca hilesiz if() ile en iyi durumdan 10 dakika daha uzundur. Üzgünüm ama yapabileceğin bir şey yok! Kazmaya devam edeceğim! Herkese teşekkürler! Ama özetlemek için çok erken!

 
borilunad :

Vurguladığım şey mümkünse, bunu yapmak iyi olur:

Nasıl? Belki? -------------------- Kodda kontrol edildiğinde derleyici bir uyarı verir;

';' - noktalı virgül beklenmeyen C:\Program Files\

Çalışırsa, bir uyarıya katlanmak için mi?!


birinin yanlış yere virgül koyması durumunda bir uyarı verilir ( boş ';' operatörü o kadar sık kullanılmaz). Bu tasarım çalışır ve tamamen yasaldır.
 
borilunad :
Şimdi ölçü alıyorum!

Tek yapmanız gereken tüm seçenekleri kontrol etmek. Aksi takdirde hata yapabilirsiniz
 
borilunad :

Vurguladığım şey mümkünse, bunu yapmak iyi olur:

Nasıl? Belki? -------------------- Kodda kontrol edildiğinde derleyici bir uyarı verir;

';' - noktalı virgül beklenmeyen C:\Program Files\

Çalışırsa, bir uyarıya katlanmak için mi?!

Uyarıların göze batan olmasını önlemek için şunu kullanın: {}

 if (!A && !B && !C && !D) {} //пустой оператор
else Action();

 
PapaYozh :

Uyarıların göze batan olmasını önlemek için şunu kullanın: {}

Teşekkür ederim! Şimdi bu parantezleri deneyeceğim!