لماذا هذا "قريبة جدا بعد حتى الآن" إذا البيان؟

StackOverflow https://stackoverflow.com/questions/318068

  •  11-07-2019
  •  | 
  •  

سؤال

وأنا أعمل على بيان إذا وأريد لتلبية شرطين لتجاهل الحلقة. هذا يبدو سهلا في البداية، ولكن الآن ... لا أعرف. هذا هو بلدي معضلة ...

if((radButton1.checked == false)&&(radButton2.checked == false))
{
    txtTitle.Text = "go to work";
}

والمعضلة هو "الذهاب إلى العمل" لا يتم تنفيذ إذا radButton1 هو زائف وradButton2 صحيح. لا ينبغي أن يتطلب كل الظروف لأنها كاذبة من أجل تخطي البيان؟

هل كانت مفيدة؟

المحلول

لا، بل يتطلب منها أن كلا أنها كاذبة إلى <م> تنفيذ البيان.

نصائح أخرى

وكلا، فإنه يتطلب كل الظروف لأنها كاذبة إلى <م> تنفيذ البيان. قراءة مرة أخرى:

if ((radButton1.checked == false) && (radButton2.checked == false)) {
    txtTitle.Text = "Go to work";
}

في اللغة الإنجليزية: "إذا radButton1.checked هو زائف وغير radButton2.checked كاذبة، ثم تعيين وtxtTitle.Text إلى 'الذهاب إلى العمل ".

إذا كنت ترغب في تخطي البيان عند كل الظروف ليست صحيحة ثم ينفي المنطق الخاص بك، مثل هذا:

if ((radButton1.checked == true) || (radButton2.checked == true)) {
    txtTitle.Text = "Go to work";
}

وهذا، وترجم إلى اللغة الإنجليزية على ما يلي: "إذا radButton1.checked غير صحيح أو radButton2.checked غير صحيح، ثم تعيين النص إلى 'الذهاب إلى العمل". وهذا يعني أنه إذا كان أي الشرط صحيحا، فإنه سيتم تنفيذ العبارة، أو، إذا كان كلاهما كاذب، لتخطي ذلك.

ويقول لقد اثنين من المتغيرات اسمه A وB

إذا A و B لديهم هذه القيم

A     true    true    false   false
B     true    false   true    false

وبعد ذلك تعود هذه العمليات

AND   true    false   false   false
OR    true    true    true    false
XOR   false   true    true    false
NAND  false   true    true    true
NOR   false   false   false   true
XNOR  true    false   false   true

لاحظ أن 3 السفلي في الجدول الثاني هي الأضداد منطقية (أي أنهم لم تطبق) من أعلى 3 في نفس الجدول.

وبمقارنة إلى true (أو خاطئة) غير ضرورية تماما:

if(!((radButton1.checked == true)&&(radButton2.checked == true))) { ... }

ويصبح

if( !(radButton1.checked && radButton2.checked) ) { ... }

وأو على حد سواء

if( !radButton1.checked || !radButton2.checked ) { ... }

في المثال الخاص بك فإنه سيتم تنفيذ فقط رمز txtTitle.Text ="go to work" إذا كان كل من أزرار ليست صحيحة. حتى يكون أحدهما حقيقي واحد يجري كاذبة فإنه سيتم تخطي البيان.

ولا. فهو يتطلب واحدة من تلك التصريحات لأنها كاذبة لتخطي. انظروا إذا:

if (condition1 && condition2) {
    doSomething();
}

وحتى إذا CONDITION1 OR CONDITION2 ليس صحيحا فإنه لن تنفيذه.

وأنا حصلت على العمل. أرى أن كلا منهما بحاجة إلى أن تكون كاذبة لتنفيذ البيان، لهذا البيان، وسيلة لتلبية كل الشروط عن طريق استخدام

if(!((radButton1.checked == true)&&(radButton2.checked == true)))
{
    ...
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top